如何使用pdfbox
从pdf中检索字体类型样式属性答案 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()