【发布时间】:2012-10-22 06:18:22
【问题描述】:
我在使用 iText 时遇到问题。其他人说 iText 仅用于 PDF 创建?它无法读取或提取 PDF 中的文本。真的吗?
如果是真的,那么我可以选择哪些其他选项从 PDF 文件中提取文本并将其保存在变量中或在 Android 设备中显示?
如果 iText 能够从 PDF 中提取文本,那么如何?
【问题讨论】:
我在使用 iText 时遇到问题。其他人说 iText 仅用于 PDF 创建?它无法读取或提取 PDF 中的文本。真的吗?
如果是真的,那么我可以选择哪些其他选项从 PDF 文件中提取文本并将其保存在变量中或在 Android 设备中显示?
如果 iText 能够从 PDF 中提取文本,那么如何?
【问题讨论】:
iText 可以从 PDF 中提取文本。虽然它确实起源于创建新 PDF 和操作现有 PDF 的工具,但近年来它在提取文本方面也变得越来越好。这显然意味着您应该使用当前的 iText 版本 (5.3.x) 进行文本提取。
iText 主要开发人员 Bruno Lowagie 所著的“iText in Action, second edition”一书在第 15 章中解释了基本的 iText 文本提取,该章的示例可在 iText Sourceforge SVN 存储库中找到,参见。 Samples for chapter 15。一个很好的起点是ExtractPageContentSorted2,它会提取整个页面的文本。
如果您有特殊要求,可以以ExtractPageContentSorted1为起点,明确定义文本提取策略;根据您的要求,您将需要自己的策略。如果您只想要特定区域的文本,请查看ExtractPageContentArea。
要真正微调 iText 的文本提取功能,您应该查看 iText-question 邮件列表存档(例如 at nabble.com),因为最近 iText 文本提取 API 已扩展为服务于其他用例。
【讨论】:
constrain the result to the surrounding of your key word。我正在考虑何时从 PDF 中提取文本并保存在 String 变量中,我将从该字符串而不是 PDF 中进行搜索。这是个好方法吗?
Use below code to extract text from pdf :
String pat = data.getData().getPath();
File f = new File(pat);
//f is file path of pdf file
read = new PdfReader(new FileInputStream(f));
parser = new PdfReaderContentParser(read);
strw = new StringWriter();
stretegy = parser.processContent(j, new SimpleTextExtractionStrategy());
strw.write(stretegy.getResultantText());
String da = strw.toString();
//set extracted text from pdf file
//to Edit-text
edt1.setText(da);
【讨论】: