【发布时间】:2013-07-09 11:08:42
【问题描述】:
我正在尝试从 pdf 文件中获取特定文本或行的字体大小或格式(粗体等),但直到现在都没有成功。
像下面这样使用 PDFTextStripper 只会得到纯文本
PDFTextStripper 剥离器 = new PDFTextStripper(); String actualText = stripper.getText(actualDoc);
你能帮我解决这个问题吗? 谢谢。
【问题讨论】:
我正在尝试从 pdf 文件中获取特定文本或行的字体大小或格式(粗体等),但直到现在都没有成功。
像下面这样使用 PDFTextStripper 只会得到纯文本
PDFTextStripper 剥离器 = new PDFTextStripper(); String actualText = stripper.getText(actualDoc);
你能帮我解决这个问题吗? 谢谢。
【问题讨论】:
您需要扩展PDFTextStripper 并覆盖PDFTextStripper#processTextPosition。此方法使您可以访问TextPosition 对象,其中保存了字体属性。
然后您需要收集位于指定框(您的行)中的所有 TextPosition 并将它们放在一起。
【讨论】:
writeString(String, List<TextPosition>) --- 这里的信息已经被排序和过滤了。
writeString(String, List<TextPosition>) 确实应该是一种更简单的方法。
writeString 重载是最近才添加到库中的。因此,即使是 PDFBox 的长期用户也可能会错过它;)。