Java Apache Tika元数据中的PropertyTypeException

Java Apache Tika元数据中的PropertyTypeException,java,apache-tika,Java,Apache Tika,我正在使用Crawler4j来提取页面和pdf文件。我已经检查了我得到的字节数组是否有效,是否可以输出到pdf文件 使用此字节数组,我将执行以下操作: //Tika specific types BodyContentHandler handler = new BodyContentHandler(); Metadata metadata = new Metadata(); InputStream inputstream; ParseContext pcontext = new ParseCon

我正在使用Crawler4j来提取页面和pdf文件。我已经检查了我得到的字节数组是否有效,是否可以输出到pdf文件

使用此字节数组,我将执行以下操作:

//Tika specific types
BodyContentHandler handler = new BodyContentHandler();
Metadata metadata = new Metadata();
InputStream inputstream;
ParseContext pcontext = new ParseContext();
PDFParser pdfparser = new PDFParser();

...

byte[] contentData = null;
contentData = page.getContentData(); //Crawler4j content, delivers valid PDF
//Path path = Paths.get("C:\\Test\\local.pdf"); //use this line to read from a local pdf

//Default fields:
String title = "pdf title";
String content = "";
String suggestions = "";
//
try {
    ////contentData = Files.readAllBytes(path); //use this line to read from a local pdf
    inputstream = new ByteArrayInputStream(contentData);
    pdfparser.parse(inputstream, handler, metadata,pcontext); //THIS LINE CRASHES
    content = "pdf suggestions";
    suggestions = handler.toString();
} catch (Exception e) {
    LOGGER.warn("Error parsing with Tika.", e);
}
我标出了撞车线。由此产生的异常如下所示:

//Tika specific types
BodyContentHandler handler = new BodyContentHandler();
Metadata metadata = new Metadata();
InputStream inputstream;
ParseContext pcontext = new ParseContext();
PDFParser pdfparser = new PDFParser();

...

byte[] contentData = null;
contentData = page.getContentData(); //Crawler4j content, delivers valid PDF
//Path path = Paths.get("C:\\Test\\local.pdf"); //use this line to read from a local pdf

//Default fields:
String title = "pdf title";
String content = "";
String suggestions = "";
//
try {
    ////contentData = Files.readAllBytes(path); //use this line to read from a local pdf
    inputstream = new ByteArrayInputStream(contentData);
    pdfparser.parse(inputstream, handler, metadata,pcontext); //THIS LINE CRASHES
    content = "pdf suggestions";
    suggestions = handler.toString();
} catch (Exception e) {
    LOGGER.warn("Error parsing with Tika.", e);
}
WARN 2017-07-26 11:17:51302[Thread-5]de.searchadapter.crawler.solrparser.parser.file.PDFFileParser-使用Tika解析时出错。
org.apache.tika.metadata.PropertyTypeException:xmpMM:DocumentID:SIMPLE
位于org.apache.tika.metadata.metadata.add(metadata.java:305)
位于org.apache.tika.parser.image.xmp.JempboxExtractor.addMetadata(JempboxExtractor.java:209)
位于org.apache.tika.parser.image.xmp.JempboxExtractor.extractXMPMM(JempboxExtractor.java:150)
位于org.apache.tika.parser.pdf.PDFParser.extractMetadata(PDFParser.java:239)
位于org.apache.tika.parser.pdf.PDFParser.parse(PDFParser.java:154)
位于de.searchadapter.crawler.solrparser.parser.file.PDFFileParser.parse(PDFFileParser.java:82)
位于de.searchadapter.crawler.solrparser.solrparser.parse(solrparser.java:36)
位于de.searchadapter.crawler.SolrJAdapter.indexDocs(SolrJAdapter.java:58)
在de.searchadapter.crawler.WebCrawler.onBeforeExit(WebCrawler.java:63)中
位于edu.uci.ics.crawler4j.crawler.CrawlController$1.run(CrawlController.java:309)
在java.lang.Thread.run(Thread.java:745)

以上代码来自
PDFFileParser
。我没有设置任何属性,所以我不知道这个错误是从哪里来的

附加信息:PDF文件似乎使用了未知字体,出现以下警告:

11:17:50.963[Thread-5]WARN o.a.pdfbox.pdmodel.font.PDSimpleFont-在font GGOLOE+SANSC5平原中,f_i(30)没有Unicode映射


编辑:我编辑了代码,以便它可以读取本地pdf文件。我尝试了另一个PDF文件,但没有得到错误。这似乎是字体失败的结果。

您使用的是什么版本的Apache Tika?如果不是最新版本,升级时会发生什么?我使用的是同一版本,我使用的是最新的Apache Tika版本,即1。16@Yogi啊。。。这个问题:我看到的是相同的
org.apache.tika.metadata.PropertyTypeException:xmpMM:DocumentID:SIMPLE
解决这个问题有什么好运气吗?@bachr我已经讨论这个话题很久了。但我的猜测仍然是一个失败的字体。遗憾的是,我想不起来有什么解决办法