2

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

4

1 回答 1

1

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

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

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

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

public class MyPDFTextStripper extends PDFTextStripper {

    public MyPDFTextStripper() throws IOException {
        super();
    }

    public Vector<List<TextPosition>> myGetCharactersByArticle() {
        return getCharactersByArticle();
    }
}

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

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()
于 2014-10-03T15:15:30.423 回答