首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >阻止Ghostscript替换嵌入式字体?

阻止Ghostscript替换嵌入式字体?
EN

Stack Overflow用户
提问于 2016-08-26 16:55:01
回答 1查看 2.7K关注 0票数 1

使用Ghostscript 9.19,Windows 10 Pro

我使用Ghostscript将现有的PDF转换为PDF/A-1b。

然而,即使所需的字体已经嵌入到我的原始PDF中,Ghostscript正在输出PDF/A文件中替换它们。

具体而言:用字体时代--用字体来代替时代的新罗马,波尔德。取代字体时代-罗马时代新罗马时代。代字体时代-意大利语取代时代新罗马,意大利语。

我在我的机器上安装了Times (默认情况下它在那里)。

这是我的命令行:

代码语言:javascript
复制
C:\Program Files\gs\gs9.19\bin>gswin64c -dPDFA -dBATCH -dNOPAUSE 
 -sProcessColorModel=DeviceCMYK -sDEVICE=pdfwrite 
 -sPDFACompatibilityPolicy=1 -sFontPath=C:/Windows/Fonts 
  -IC:/windows/fonts -sOutputFile=C:/temp/testerA.pdf c:/temp/tester.pdf

在处理Gjostscript之前:

在处理Ghostscript之后:

为什么Ghostscript要替换嵌入式字体?

如何防止Ghostscript替换嵌入式字体?

编辑:来自我的系统的“时代”字体的截图,显示名称与PDF中嵌入的名称相匹配:

EN

回答 1

Stack Overflow用户

发布于 2016-08-27 08:08:10

这里的基本答案是,字体是,而不是嵌入的

查看我们看到的原始字体列表:

代码语言:javascript
复制
Times New Roman
Actual Font: TimesNewRomanPSMT

不一样的字体。同样的,新罗马时代,意大利语也不像TimesNewRomanPS-意大利语等等。

在您的机器上设置TimesNewRomanPSMT,并将-sFontPath设置为指向该目录,意味着输入应该使用名为“TimesNewRomanPSMT”的字体,但不嵌入该字体,那么Ghostscript将使用磁盘中的TrueType字体,因为它具有相同的名称。

" TimesNewRomanPSMT“与”TimesNewRomanPSMT“的名字不一样,所以Ghostscript不会使用TimesNewRomanPSMT代替TimesNewRomanPSMT,而是使用内置的字体,并确定与TimesNewRomanPSMT最接近的匹配,这在我看来是完全合理的。

您可以自己定义替换,所以如果您想使用TimesNewRomanPSMT代替TimesNewRomanPSMT,您可以这样做。您只需编辑fontmap.GS即可。

但从根本上讲,Ghostscript并没有取代嵌入式字体,因为字体不是嵌入式的。请注意,这是PDF/A的要求,所有字体都是嵌入式的,所以pdfwrite设备甚至不能让字体不被嵌入,它必须嵌入一些东西。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39171223

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档