如何使用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()