Pdfbox如何从pdf中提取字体类型和样式



如何使用pdfbox从pdf中检索字体类型样式属性

如果要获取pdf文档中单个字符的字体,可以调用textPosition.getFont().getFontDescriptor().getFontName(),其中textPosition是类TextPosition的实例。

PDF 文档的所有字符都与 TextPosition 对象相关。

您可以通过覆盖 PDFTextStripper 的processTextPosition(TextPosition t)方法或使用 PDFTextStripper 的getCharactersByArticle()方法来获取 PDF 文档的 TextPosition 对象。

即对于后者 - 像这样扩展 PDFStripper 类:

public class MyPDFTextStripper extends PDFTextStripper {
    public MyPDFTextStripper() throws IOException {
        super();
    }
    public Vector<List<TextPosition>> myGetCharactersByArticle() {
        return getCharactersByArticle();
    }
}

。获取单个页面使用的文本位置列表:

MyPDFTextStripper stripper = new MyPDFTextStripper();
PDDocument doc = PDDocument.load(new File(filename));
stripper.setStartPage(pageNr+1);
stripper.setEndPage(pageNr+1);
stripper.getText(doc);
Vector<List<TextPosition>> list = stripper.myGetCharactersByArticle();

。最后,要获取单个字符的字体,只需键入:

textPosition.getFont().getFontDescriptor().getFontName()

最新更新