PDFBox PDTrueTypeFont错误/宽度错误的解决方法?

时间:2011-04-06 17:05:18

标签: true-type-fonts embedded-fonts pdfbox

我正在使用Java中的Apache PDFBox库生成pdf。我在pdf中嵌入了一个字体,但每当我打开pdf时,我都会收到错误消息:

  

“字体font_name包含错误/宽度”

无论嵌入的字体是什么,都会发生此错误,但在您对该错误点击“确定”后,字体和pdf仍会正确显示。但是,对于生产代码,即使正确呈现pdf,也会在生成的每个pdf上弹出此警告是不可接受的。

是否有针对此的解决方法,以便我可以避免错误弹出?

此处的参考是相关的bug(这是版本1.4,我想继续使用而不是回到1.3)

以下是用于嵌入字体的代码:

font = PDTrueTypeFont.loadTTF( doc, new File( "VERDANA.ttf" ));

2 个答案:

答案 0 :(得分:0)

仅使用PDType1Font.FONT正常工作,直到您需要将“嵌入真实类型字体”嵌入到pdf文档(许多发布者需要)中,这是通过像OP那样从ttf文件加载它来完成的。

虽然嵌入成为必要的可能的解决方法,

font = PDTrueTypeFont.loadTTF( doc, new File( "helveltica.ttf" ));
font.setWidths(PDType1Font.HELVETICA.getWidths());

在下一版pdfbox中寻找永久性解决此问题的方法! :)

答案 1 :(得分:0)

此问题已在2012年7月解决,包含此修复程序的第一个版本是1.7.1。

有关详细信息,请参见Apache Jira中的问题PDFBOX-954