PDFBox无法找到cid键字体的正确后备字体

时间:2018-10-18 07:50:04

标签: java pdf fonts pdfbox

在我们公司中,我们正在使用tcpdf创建pdf。这些pdf将通过使用最新pdfbox的Java应用程序下载和打印。

通常将它们打印出来没有问题,但有时我们会在其中包含中文/日语字符的文档。

对于这些字符,将使用字体(类型)cid0ct

如果我在pdf查看器中打开此类pdf,则查看它没有问题。原生窗口,原生macOS,Chrome pdf查看器,一切正常。

如果我尝试打印(或转换为图像)这样的pdf文件,由于使用后备字体,我只会收到一些警告,但它始终使用错误的字体,因此会丢失许多字形。

用于转换的命令行命令:

java -jar pdfbox-app-2.0.12.jar PDFToImage invoice_1001606.pdf

结果(缩短):

Okt 17, 2018 10:29:59 AM org.apache.pdfbox.pdmodel.font.PDCIDFontType0 <init>
WARNUNG: Using fallback BrushScriptMT for CID-keyed font cid0ct
Okt 17, 2018 10:29:59 AM org.apache.pdfbox.rendering.CIDType0Glyph2D getPathForCharacterCode
WARNUNG: No glyph for 20013 (CID 0295) in font cid0ct
Okt 17, 2018 10:29:59 AM org.apache.pdfbox.rendering.CIDType0Glyph2D getPathForCharacterCode
WARNUNG: No glyph for 38920 (CID 0db2) in font cid0ct
Okt 17, 2018 10:29:59 AM org.apache.pdfbox.rendering.CIDType0Glyph2D getPathForCharacterCode

我安装了完整的google fonts软件包进行测试,但pdfbox再次选择了错误的字体:

Okt 18, 2018 8:09:19 AM org.apache.pdfbox.pdmodel.font.PDCIDFontType0 <init>
WARNUNG: Using fallback Jua-Regular for CID-keyed font cid0ct

将字体嵌入到pdf中是不可行的,因为我们(或我们的客户)每天都会生成数千个文档,这会增加pdf的大小。

我创建了一个示例pdf文件,其中包含一些中文/日语字符: Google Drive - invoice_12.pdf

这是pdf在chrome中的外观: Original pdf in chrome pdf viewer

这是图像转换后的样子: Converted image

也许您对如何设置正确的后备字体有一些想法,或者您知道要使用/安装正确的字体。

我唯一的想法是向tcpdf添加自定义字体,我也可以在操作系统上安装它。

0 个答案:

没有答案