0

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

“字体 font_name 包含错误的 /Widths”

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

有没有解决方法,这样我就可以避免弹出错误?

供参考的是相关的错误(这是在版本 1.4 中,我想继续使用而不是回到 1.3)

这是用于嵌入字体的代码:

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

2 回答 2

0

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

虽然嵌入变得必要,但可能的解决方法是,

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

期待在 pdfbox 的下一个版本中永久修复此问题!:)

于 2011-05-23T23:02:17.827 回答
0

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

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

于 2019-02-17T17:04:39.803 回答