2016-12-30 91 views
0

我正在使用PDFBox API 2.0.1版来阅读PDF文件。我想提取文本属性,并写入下面的代码获取文本如何使用PDFBox得到pdf中的字符是否为粗体

@Override 
protected void processTextPositon(TextPosition text) 
{ 
    System.out.println(text.getFont().getFontDescriptor().getFontWeight()); 
} 

的bold属性从上面的代码,我正在为每个字符0.0偶数虽然性格大胆。 请建议解决方案。提前致谢。

+0

字体重量是一个可选项,在你的情况下它最有可能不存在。你可能想看看[这个旧的答案](http://stackoverflow.com/a/19777953/1729265)。 – mkl

+0

当前版本为2.0.4(不会改变任何关于您的问题) –

回答

1

使用FontDescriptor.getFontWeight()无法确定文本是否为粗体。

我倾向于使用text.getFont().getBaseFont().Contains("bold")来提取粗体文本。

+0

'getBaseFont()'方法在pdfbox-2.0.1版本中不可用 – sagar

+0

使用'text.getFont()。getName()。toLower() 。载有( “大胆”)'。 –

+0

我已经使用测试字体名称的方法取得了一些成功,但我正在查看PDF,其字体名称以“Microsoft San Serif”的形式返回,无论字体是粗体还是不粗体。 getFontWeight在粗体和普通字符串上都返回0。 –

相关问题