ghostscript 如何支持 PMingLiU?

How do ghostscript support PMingLiU?

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

但是我在将 pdf 转换为图像时遇到错误。

这是pdf的内容

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

pdf文件的字体是PMingLiU。

我该如何解决这个问题?

您没有提供要查看的原始 PDF 文件,也没有提供 Ghostscript 的反向通道输出,这使得很难确定您的问题所在。

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

您有两种选择'fix':

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

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

既然您说这是您自己的应用程序,并且您使用的是 Ghostscript DLL,请注意提供 Ghostscript 所依据的许可证。这是 AGPL v3,因此您必须提供自己的应用程序源代码(以及其他内容)才能遵守该许可证。

我解决了这个问题。

-dGridFitTT=2