我正在使用pdfbox来获取pdf中使用的所有字体的名称。
到目前为止它运作良好。但是,我最近遇到了一个带有“Webdings”字体的pdf。 PDFBox无法识别它。有人可以帮忙。
这是我用过的代码:
public static Set<String> extractFonts(String pdfPath) throws IOException
{
PDDocument doc = PDDocument.load(new File(pdfPath));
PDPageTree pages = doc.getDocumentCatalog().getPages();
Set<String> fontSet = new HashSet<String>();
try{
for(PDPage page:pages){
PDResources res = page.getResources();
for (COSName fontName : res.getFontNames())
{
PDFont font = res.getFont(fontName);
if(font != null){
String fontUsedName = font.getName();
if(fontUsedName.contains("+")) {
fontUsedName = fontUsedName.substring(fontUsedName.indexOf("+")+1, fontUsedName.length());
}
fontSet.add(fontUsedName);
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
System.out.println(fontSet);
return fontSet;
}
我能够知道文件&gt;中存在'Webdings'字体。 Adobe Reader中的属性 - &gt;字体选项