使用iText从pdf文件获取文本字体

问题描述:

我一直在尝试使用iText库来提取PDF文档中每个单词的属性(字体,字体大小,颜色等)。我可以从每个页面中提取文本,但不能提取属性。此外,我没有找到任何可以提供相同的东西。请帮帮我。使用iText从pdf文件获取文本字体

+0

[如何检查所有使用的字体是否嵌入在PDF中的Java iText?](http://*.com/questions/4646130/how-to-check-that-all-used-fonts-嵌入在pdf-with-java-itext) – 2016-10-04 20:11:07

我不是Java人,所以我不能给你工作代码,但希望我可以让你95%的方式。

首先,您需要创建一个实现接口的类com.itextpdf.text.pdf.parser.TextExtractionStrategy

然后你就可以通过这个类的一个实例作为第三个参数:

PdfTextExtractor.getTextFromPage(PdfReader reader, int pageNumber, TextExtractionStrategy strategy)

方法之一该接口的名称是renderText,它会针对每个要处理的文本块进行调用。当它被称为TextRenderInfo得到通过其中有一种方法称为getFont应该给你你在找什么。将该内容存储在某种缓冲区中,调用getTextFromPage后,您可以检查该缓冲区以查看每种字体。如果您想查看实现该接口查找的示例,请在线获取SimpleTextExtractionStrategy的代码。否则here's a C# version几乎没有你在找什么。

+0

嗨,感谢吨的答复。我不知道Java中的回调函数的概念(像这里的'renderText')。我可以从“文档字体”文档中提到的getFont()方法获取应用getFullFontName()对象的字体名称。 :-) – srjit 2012-02-06 19:08:18