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

时间:2012-06-04 12:17:06

标签: pdfbox

如何使用pdfbox

从pdf中检索字体类型样式属性

1 个答案:

答案 0 :(得分:1)

如果您想获取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();
    }
}

...获取单页使用的TextPosition列表:

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()