我需要将PDF转换为正常文本(这是我们县注册服务商的“投票声明”)。这些文件很大(2000页左右),大部分都包含表格。一旦我把它写入文本,然后我将使用我正在写的一个程序来解析它,并将数据放入数据库中。 我试过Adobe Reader中的“另存为文本”功能,但它并不像我想要的那样精确,特别是在将表格数据分隔成CSV格式时。 那么,对工具或Java库的任何建议都可以做到这一点?PDF到文本工具或Java库?
回答
那么,有iText。我只有有限的经验,但it seems它可以做你想做的。
Apache PDFBox当然可以做到这一点。它的网站提到“PDF到文本提取”作为其主要特征。有一个ExtractText command line tool专门为此(source code),基于其PDFTextStripper class。还有一个PDFBox Text Extraction Guide!
iText可以做一些阅读,我想但是可能会有更好的工具(PDFBox,如你所提到的,也许)来达到这个目的...... – Knobloch 2009-02-24 21:14:40
使用文本(行)打印机打印到文件。
我一直发现xpdf工具非常有用。
我们成功使用PDF到文本转换来转换用于EDI的PDF业务文档。保留布局的选项可以很好地工作,以便将事情定位好,以便在程序中解析。
我使用iText的和我“去过它真的很高兴。 我以前用过xmlpdf和iText的是在我看来,远优于。
不知道在你的PDF页面的布局就很难说
我建议下载和尝试都的iText和PDBox你会发现两者在其网站上的文字提取的例子。 - 你应该有一个提取器在< 30分钟运行假设你知道围绕Java的方式
。从PDFBox开始,因为它的文本提取能力更好比iText的。
别人提到了xpdf,这可能对你有用。这是一个C库,其中包含一些命令行工具。它有很多文本提取器,你可以很容易地格式化输出。再次,它真的取决于你的页面布局。
PDFTextStream是我们的Java + .NET库,用于从PDF文档中提取内容;你可以试试看。此外,它提供了一些基本的table data extraction utilities,它们位于PDFTextStream的表格检测功能之上。这绝不是一个通用的解决方案(尽管我们也在研究其中的一个!),但是如果表格数据被明确定义(例如,由行和行等限定的行和列),那么您可能会发现现在有什么妥善解决。
鉴于问题的标题:Apache Tika工作得很好,我从PDF中提取纯文本。我没有用它从表格中获取文本。
对于PDF,它实际上是使用PDFBox。但除了PDF之外,其他格式如Microsoft Word(doc和docx),Excel和PowerPoint,OpenOffice.org/LibreOffice ODT,HTML,XML和many more也是如此。它的AutoDetectParser使得从任何输入中获取文本变得容易。
如果需要处理结果文本(例如将它传递给Mahout进行分类),可以使用ParsingReader将结果读取到Reader中,同时后台进程将其提取出来。最后,虽然extrating的内容,这还罢了发现的元数据:
public Reader getPlainTextReader(final InputStream is) {
try {
Detector detector = new DefaultDetector();
Parser parser = new AutoDetectParser(detector);
ParseContext context = new ParseContext();
context.set(Parser.class, parser);
Metadata metadata = new Metadata();
Reader reader = new ParsingReader(parser, is, metadata, context);
for (String name : metadata.names()) {
for (String value : metadata.getValues(name)) {
logger.debug("Document {}: {}", name, value);
}
}
return reader;
} catch (IOException e) {
...
}
}
- 1. java文本工具
- 2. 库或工具将pdf转换为SilverLight xaml文件
- 3. 将文档模板转换为java中的PDF文件(查找工具/库)
- 4. 文本到ERD工具
- 5. 工具图像转换文本到Word或TXT或HTML
- 6. 常用的基于Java的PDF构建库/工具?
- 7. 用于生成随机但真实文本的库或工具
- 8. Java获得mouseover工具提示文本
- 9. java密钥库工具
- 10. 寻找一个工具将PDF转换为图像和文本(或HTML)
- 11. 免费RTF到PDF .NET组件或工具?
- 12. 将PDF文档(* .pdf)转储到文本?
- 13. Eclipse工具栏:找不到'help'或'window'文本
- 14. csv到PDF文件在java
- 15. Java Pdf差异库
- 16. Toplink和Java存储word或pdf文件
- 17. 使用某些实用工具或脚本将嵌入的PDF字体提取到外部ttf文件
- 18. 用于Google文档文件上传的工具或库
- 19. 文件数据库工具
- 20. 将文本添加到PDF
- 21. 将文本添加到PDF
- 22. PDF到文本在android
- 23. 搜索Java库或第三方库thorugh,我编写的GUI组件到PDF
- 24. Advantage数据库ORM工具或代码生成工具
- 25. 无法通过java或其他工具连接到本地sql server sqlexpress实例
- 26. 上传PDF或图片文件到AWS桶在java
- 27. 工具或vbscript将硬编码文本添加到多个文件的顶部?
- 28. 绘制二分图的工具或库?
- 29. 数据库统计或bechmark工具
- 30. javascript相关的调试工具或库?
我有一种感觉的表中的数据可能会引起你一些头痛... – Knobloch 2009-02-24 21:15:48
是的。还有表格标题和页面标题。虽然在整个文档中是一致的,但它们在不同文档之间并不一致。每次选举一个文件,似乎他们不断改变每次选举的格式。 – 2009-02-24 21:24:42