【发布时间】:2015-11-28 00:34:34
【问题描述】:
我在使用 Apache TIKA(1.10 版)时遇到了一些问题。我得到了一些 PDF 文件,它们只是扫描的纸片。这意味着每个页面只是一个图像。我的目标是提取 PDF 文件的文本。
我的 tesseract 设置正确,提取 JPG 和 PNG 文件就像一个魅力。我正在使用的代码看起来像这样(不要介意丢失的异常处理):
public String extractText(InputStream stream) {
AutoDetectParser parser = new AutoDetectParser();
BodyContentHandler handler = new BodyContentHandler(Integer.MAX_VALUE);
Metadata metadata = new Metadata();
ParseContext context = new ParseContext();
parser.parse(stream, handler, metadata, context);
String text = handler.toString();
return text;
}
我搜索了很多,但没有找到任何适合我的解决方案。我已经尝试过PDFParserConfig 类的setExtractInlineImages 方法,但这并没有改变任何事情。
使用自定义 ParsingEmbeddedDocumentExtractor 提取嵌入文档确实提取了 doc 文件的嵌入资源,但不适用于我的 PDF 文件。
如果你们中的任何人都可以提供一些帮助,那就太棒了:)
【问题讨论】:
-
您是否将
PDFParserConfig附加到设置了该选项的上下文中? -
是的,我做到了。但这没有效果:/
-
你能把你用来做那个的代码贴出来,以便我们检查它是否正确吗?
-
PDFParserConfig config = new PDFParserConfig();config.setExtractInlineImages(true);ParseContext context = new ParseContext();context.set(PDFParserConfig.class, config);PDFParser pdfParser = new PDFParser();pdfParser.setPDFParserConfig(config);pdfParser.parse(stream, handler, metadata, context);好了,谢谢你到目前为止的帮助:) -
运行带有
-z(提取)标志的 Tika 应用程序是否会从文件中获取扫描的图像?
标签: java pdf ocr tesseract apache-tika