我正在尝试从PDF中提取一些内容,特别是我想要提取所有斜体文本,我正在使用iText。 然后我发现这篇文章get italic lines from a pdf非常有帮助。我使用了类似的策略。
然而,对于我的pdf,我只是无法提取斜体字体,所以我试图打印出字体名称,我发现所有字体名称都不是常规字体名称,例如' AdvPS_TTR', ' FFHNAB + AdvGulliv-I',' PFIIDC + AdvOTce3d9a73',这就是我无法提取斜体文字的原因。这是我的问题,这些字体是什么?我怎么知道它是否是斜体?
如果需要代码,我会在下面粘贴它们。
public class ItalicWordExtraction extends SimpleTextExtractionStrategy{
@Override
public void renderText(TextRenderInfo arg0){
DocumentFont font = arg0.getFont();
String[][] familyFontNamesArray = font.getFamilyFontName();
for (String[] familyFontNames : familyFontNamesArray){
for (String familyFontName : familyFontNames){
System.out.println(familyFontName);
if (familyFontName.toLowerCase().contains("italic"))
{
if (font.getFontDescriptor(BaseFont.ITALICANGLE, 0) < 0)
super.renderText(arg0);
break;
}
}
}
}
}
以下是示例文件:http://www.megafileupload.com/2pHH/pdf2.pdf 查看参考部分,所有期刊名称都是斜体,这就是我要提取的内容。