Ghostscript PDF 到 PDF/A 转换字体问题

Ghostscript PDF to PDF/A conversion font issues

我正在探索将 PDF 文档转换为 PDF/A 的工具。 Ghostscript 似乎为这种转换提供了开箱即用的支持。一个问题似乎是作为原始 PDF 文档一部分的某些 True Type 字体未正确转换。如果我从转换后的 PDF/A 文档中复制一段文本,然后将其粘贴到记事本中,复制的文本似乎是乱码。

原文档文字复制到记事本即可

我正在使用以下脚本:

gswin64 -dPDFA -dBATCH -dNOPAUSE -dUseCIEColor -sProcessColorModel=DeviceCMYK -sDEVICE=pdfwrite -sPDFACompatibilityPolicy=1 -sOutputFile=FilteredOutput.pdf Filtered1Page.pdf

我已经在 Google 驱动器中上传了 1 页示例源 PDF: SampleInput

从命令生成的示例输出 PDF/A 文档位于 Google 驱动器中: SampleOutput

运行 在 windows 机器上对此 PDF 的上述查询将重现该问题。

是否有任何设置/命令可以正确处理 PDF/A 转换?

不能保证从 PDF 复制和粘贴。子集字体将 没有 具有可用的编码(例如 ASCII 或 UTF-8),在这种情况下,如果它们具有关联的 ToUnicode CMap,它们将只服从 cut/paste/search,许多 PDF 文件不包含 ToUnicode CMap。

当然,PDF/A 规范声明(在我看来很奇怪)您不应使用子集字体,但并非总是可以判断字体是否为子集(并非所有创作者都遵循 XXXXX+ 约定), 即使字体不是那里的子集 still 也不能保证它的编码是可用的。

查看您发布的文件,它不包含它使用的一种字体(Arial、Bold),因此 Ghostscript 替换为 DroidSansFallback,它包含的字体(FreeSansBold)是一个子集(FWIW this字体实际上似乎没有被使用......)。后备字体是 CIDFont,因此文本不可能是 'correct'.

我相信,如果您为 Ghostscript 提供一个真实的字体来替换 Arial,Bold,那么它可能会正常工作。这也将解决更明显的字符间距不正确的问题(在一个地方,非常不正确),这是由具有与原始宽度不同的后备字体引起的。

注意警告信息已经告诉你不要使用-dUseCIEColor。

您不能 copy/paste/search PDF 的事实并不意味着它不是有效的 PDF/A-1b 文件,所以这并不意味着创建 ( PDF/A-1b 的 NOT 转换)不是 'proper'.