【发布时间】:2017-01-04 13:07:49
【问题描述】:
使用 Apache Tika 的 PDFParser 解析 PDF 文件时收到以下错误消息
Exception in thread "main" java.lang.ExceptionInInitializerError
at org.apache.tika.parser.pdf.PDFParser.parse(PDFParser.java:150)
at tikapdf.TikaPdfParser.main(TikaPdfParser.java:29)
Caused by: java.lang.NullPointerException
at org.apache.pdfbox.text.PDFTextStripper.<clinit>(PDFTextStripper.java:1852)
... 2 more
before 和 after 添加 PDFBox jar 时出现错误。 Tika 1.14 应该已经与 PDFBox 捆绑在一起。显示所有信息和 Java 代码的 Eclipse IDE 屏幕下方。
package tikapdf;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.io.IOException;
import org.apache.tika.exception.TikaException;
import org.apache.tika.metadata.Metadata;
import org.apache.tika.parser.ParseContext;
import org.apache.tika.parser.pdf.PDFParser;
import org.apache.tika.sax.*;
import org.xml.sax.SAXException;
public class TikaPdfParser {
public static void main(final String[] args) throws IOException, SAXException, TikaException {
try {
InputStream input = new FileInputStream(new File("D:\\Users\\bguarism\\workspace\\NLP\\invoice89526610.pdf"));
BodyContentHandler textHandler = new BodyContentHandler(-1); //-1 to allow parsing for unlimited character
Metadata metadata = new Metadata();
ParseContext context = new ParseContext();
//parsing the document using PDF parser
PDFParser parser = new PDFParser();
parser.parse(input, textHandler, metadata, context);
System.out.println("Title: "+ metadata.get(Metadata.TITLE));
//System.out.println("Body: "+ textHandler.toString());
input.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
【问题讨论】:
-
该代码行正在搜索资源“org/apache/pdfbox/resources/text/BidiMirroring.txt”。找出它是否在 tika 应用程序中会很有趣。你检查过大小和/或校验和吗?
-
感谢您的快速回答。我只下载了 JAR 文件。现在,在下载
pdfbox-2.0.4-src(源代码)后,我在pdfbox-2.0.4\pdfbox\src\main\resources\org\apache\pdfbox\resources文件夹中找到了BidiMirroring.txt文件。让它与我的 Tika 代码一起工作的最简单方法是什么? -
它也应该在 tika app jar 中。据我了解,您不需要 pdfbox 文件,因为它们是 tika 的一部分。这就是为什么我问“你检查过大小和/或校验和吗?”。
-
MD5 签名匹配!没问题。
-
我查看了 tika jar,文件在 org\apache\pdfbox\resources\text\ 中。所以我怀疑一些日食问题。因为我使用的是 netbeans,所以我无能为力。
标签: java eclipse pdfbox apache-tika