java - 如何使用pdfbox获取pdf中选定文本的字体信息
问题描述
我有 pdf 中所选文本的坐标。我正在使用 PDFTextStripperByArea 添加和提取区域以获取文本信息。
但我想获取所选文本的字体信息。当我使用 PDFTextStripperByArea 类的 getResources() 方法时,它返回 null。这是示例代码-
PDFTextStripperByArea stripper = new PDFTextStripperByArea();
stripper.setSortByPosition(true);
Rectangle2D rect = new Rectangle(96, 150, 101, 11);
stripper.addRegion("selectedText", rect);
PDPage firstPage = document.getPage(0);
stripper.extractRegions(firstPage);
System.out.println(stripper.getTextForRegion("selectedText"));
PDResources resources = stripper.getResources();
// gives a null pointer exception for resources object in the below line
for (COSName fontName : resources.getFontNames())
{
PDFont font = resources.getFont(fontName);
System.out.println(font.getFontDescriptor().getFontName());
System.out.println(font.getFontDescriptor().getFontFamily());
System.out.println(font.getFontDescriptor().getFontWeight());
System.out.println(font.getName());
System.out.println(font.getSubType());
}
我做错了什么还是有其他方法可以实现这一目标?
解决方案
推荐阅读
- flutter - firebase_messaging 回调在前台时不会触发。iOS 应用 Flutter
- java - 使用 groovy 脚本将 XML 中的值替换为 ParseText
- python - 深度 Q 学习:关于反向传播的问题
- javascript - 通过 setState 在反应中清空对象的所有值的更好方法
- regex - 2个日期之间的匹配数
- django - 有没有办法“锁定”页面以防其他用户正在编辑 - DJANGO
- arrays - 如何创建不连续数组索引的切片
- java - 字符串变量的输入在其前面有整数输入时被跳过
- json - 使用 Terraform 强制执行标签及其价值 Azure Policy
- swift - 除了在 SwiftIU 视图中之外,无法访问类变量