Ghostscript 如何支持 PMingLiU?

Posted

技术标签:

【中文标题】Ghostscript 如何支持 PMingLiU?【英文标题】:How do ghostscript support PMingLiU? 【发布时间】:2019-08-19 10:36:17 【问题描述】:

我在我的 C# 应用程序中使用 gsdll32.dll。 (ghostscript 版本为 9.26)

但我在将 pdf 转换为图像时出错。

这是pdf的内容。

而这张图片是ghostscript转换后的内容。

pdf文件的字体是PMingLiU。

我该如何解决这个问题?

【问题讨论】:

【参考方案1】:

您没有提供要查看的原始 PDF 文件,也没有提供 Ghostscript 的反向通道输出,因此很难确定您的问题是什么。

但我猜您的问题是 PDF 文件可能请求“PMingLiU”,但它不包含字体(或 CIDFont)的副本。在这种情况下,Ghostscript 将在反向通道上提供警告,并使用替代字体。如果丢失的字体是 CIDFont(很可能),那么它会根据成功的可能性进行一系列尝试。在这种情况下,它可能会退回到倒数第二个选项并使用 DroidSansFallback 来替换丢失的字体。

您有两个选项来“解决”这个问题:

1) 创建嵌入字体的 PDF 文件。这是迄今为止最好的解决方案,是 CIDFonts 的要求(尽管许多生产者[生产者忽略了这一点),并且是保证获得正确输出的唯一方法。

2) 为 Ghostscript 提供更好的替代字体。为此,您需要知道丢失的字体是 Font 还是(更有可能)是 missign CIDFont。如果它缺少字体,那么您需要修改 fontmap.gs 并添加替代品,如果它缺少 CIDFont,那么您需要编辑 cidfmap。您可以修改 ghostpdl/Resource/Init 中的副本或制作新文件。在任何一种情况下,您都需要告诉 Ghostscript 哪个目录包含要使用的 copeis。您可以通过使用 -I 开关提供路径来做到这一点。

既然您说这是您自己的应用程序,并且您正在使用 Ghostscript DLL,请注意提供 Ghostscript 的许可证。这是 AGPL v3,因此您必须提供自己的应用程序源代码(除其他外)以遵守许可。

【讨论】:

【参考方案2】:

我解决了这个问题。

-dGridFitTT=2

【讨论】:

以上是关于Ghostscript 如何支持 PMingLiU?的主要内容,如果未能解决你的问题,请参考以下文章

使用 Ghostscript 将 PDF 转换为打印支持的格式时出现“错误:/ioerror in --filter--”

使用 GhostScript 打印 PDF

如何使用 Ghostscript 和 Ghostscript .NET 通过嵌入 IIC 配置文件生成正确的 PDF/A

让 Graphic Magick 检测 Ghostscript 以在 Windows 上阅读 pdf。如何将 WINDOWS CMD 上的 Ghostscript 调用名称更改为“gs”?

从哪里获得线程安全的 Ghostscript 编译?

此代码如何在 ghostscript 中导致 -100 错误