【发布时间】:2019-11-06 06:50:11
【问题描述】:
在我的项目中,我使用 GhostScript 将 pdf 文件转换为 png 图像。问题是它无法正确处理未嵌入pdf文件的字体,因此输出错误。使用 pdftoppm(一个 xpdf 工具)时,问题已得到解决。所以我想知道ghostscript和xpdf在转换阶段有什么区别?为什么 GhostScript 需要使用字体,而 Xpdf 不需要?
【问题讨论】:
标签: ghostscript xpdf
在我的项目中,我使用 GhostScript 将 pdf 文件转换为 png 图像。问题是它无法正确处理未嵌入pdf文件的字体,因此输出错误。使用 pdftoppm(一个 xpdf 工具)时,问题已得到解决。所以我想知道ghostscript和xpdf在转换阶段有什么区别?为什么 GhostScript 需要使用字体,而 Xpdf 不需要?
【问题讨论】:
标签: ghostscript xpdf
没有看到 PDF 文件就无法确定,但我能想到三种可能性;
1) PDF 文件确实包含该字体,并且由于某种原因 Ghostscript 无法找到或使用它。那将是一个错误,可能通过使用当前版本修复。如果这不能解决问题,那么您应该提交错误报告。
2) 您的操作系统上有可用的字体,并且 xpdf 已被告知在哪里可以找到它。如果是这种情况,您几乎可以肯定地通过 FontConfig(在 Linux 上)或通过编辑 fontmap.GS 或 cidfmap 之一为 Ghostscript 提供相同的信息,具体取决于字体的性质。
3) xpdf 也没有使用正确的字体,但幸运的是,它用作替代的字体比 Ghostscript 用作替代的字体更接近原始字体。与上面的 2 一样,您可以更改 Ghostscript 使用的内容。
当然,这就是为什么所有 PDF 文件都应该嵌入它们使用的字体(至少作为子集),尤其是它们使用的所有 CIDFonts。
【讨论】: