- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在尝试使用 Tika 的 AutoDetectParser 提取文件内容。我最初认为这是一个依赖性问题,但无法理解为什么现在我将所有 tika-app 都包含在我的 jar 中。
AutoDetect Parser 在此处返回空字符串:
BodyContentHandler handler = new BodyContentHandler();
AutoDetectParser parser = new AutoDetectParser();
Metadata metadata = new Metadata();
ParseContext context = new ParseContext();
FileInputStream mypdfstream = new FileInputStream(new File("mypdf.pdf"));
parser.parse(mypdfstream,handler,metadata,context);
System.out.println(handler.toString());
更让我困惑的是,使用标准的 PDFParser 效果很好......:
BodyContentHandler handler = new BodyContentHandler();
Metadata metadata = new Metadata();
ParseContext context = new ParseContext();
FileInputStream mypdfstream = new FileInputStream(new File("mypdf.pdf"));
PDFParser pdfparser = new PDFParser();
pdfparser.parse(mypdfstream,handler,metadata,context);
System.out.println(handler.toString());
我已将 tika-app 和 tika-parsers jar 包含在我的类路径中,并将它们包含在 ant 创建的 jar 中。
build.xml
的相关部分
<javac srcdir="${src}" destdir="${build}">
<classpath>
<pathelement path = "lib/tika-app-1.11.jar"/>
<pathelement path = "lib/tika-parsers-1.11.jar"/>
</classpath>
</javac>
<jar jarfile="${dist}/lib/MyProject-${DSTAMP}.jar" basedir="${build}">
<zipgroupfileset dir="lib" includes="tika-app-1.11.jar"/>
<zipgroupfileset dir="lib" includes="tika-parsers-1.11.jar"/>
</jar>
编辑:我用 parser.getSupportTypes(context))
查看了我的 supportedTypes
列表,它是空的。正如从 parser.getParsers()
返回的解析器列表一样。
所以也许这是另一个依赖性问题?考虑到包含 tika-app,这真的让我感到惊讶。
最佳答案
我有同样的问题,我已经更正了像这样再次在我的 Pom.xml 上添加 Tika Core 和 Parser 依赖项,然后在 Eclipse 上更新 Maven。
<dependency>
<groupId>org.apache.tika</groupId>
<artifactId>tika-core</artifactId>
<version>1.18</version>
</dependency>
<dependency>
<groupId>org.apache.tika</groupId>
<artifactId>tika-parsers</artifactId>
<version>1.18</version>
</dependency>
关于java - Tika AutoDetectParser 返回空字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34403499/
我正在尝试使用 Tika 的 AutoDetectParser 提取文件内容。我最初认为这是一个依赖性问题,但无法理解为什么现在我将所有 tika-app 都包含在我的 jar 中。 AutoDete
我正在使用 Tika 从不同类型的文件中提取文本。所以我使用“AutoDetectParser”解析器,但它的寄存器看起来是空的。我有以下代码,它返回一个空列表(第三行和第四行)。 Parser p
我是一名优秀的程序员,十分优秀!