我正在使用PDFBox 1.7.0版本从PDF中提取文本。使用IKVM.NET
将类编译为.NET。我正在使用以下代码,我在其中传递文件的名称和路径:
public static String PDFText(String PDFFilePath)
{
PDDocument doc = PDDocument.load(PDFFilePath);
PDFTextStripper stripper = new PDFTextStripper();
string text = stripper.getText(doc);
doc.close();
return text;
}
PDF全程包含2列。 提取工作相当好。但是,许多单词被连字符分割到下一行,它们应该作为一个完整的单词保留。
例如,“成为”一词会像许多其他词一样变为“正在成长”。
有没有办法阻止PDFBox用短划线“ - ”或连字符随意拆分一个单词并在一行上显示单词的一部分,同时将剩下的单词带到下一行?
我在stackoverflow上看到一篇关于随机插入单词空格的文章,即PDFBox adding white spaces within words。
但是,我的问题是用破折号或连字符拆分PDFBox。
我还看到了一个名为charactersByArticle
的方法的引用,该方法明确用于双列PDF,我想也许这可能正确地呈现提取的文本。但是,我还没有找到一个如何使用此方法的工作示例,只是预告片引用它。
如果charactersByArticle
方法不能阻止这种情况,我甚至会考虑使用正则表达式,如果有人可以提供一个很好的工作示例,将其与上面的PDFTextStripper方法结合使用。提前谢谢。