没有嵌入字体的Ghostscript和PDF

时间:2011-07-03 16:44:42

标签: fonts ghostscript raster

我的系统配置是带有GhostScript 9.02的OS X. 我想知道(一步一步)如何在GS中添加和配置文件,以便对字体进行替换。 我的GS安装没有安装/创建文件。 我该如何添加它?

问题是我有一个包含所有嵌入式子集字体的PDF,除了一个。 而对于这一个GS不能光栅化页面。

如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

PDF中有两类字体 - “常规”字体和CIDFonts。对于常规字体,每个字形只使用一个字节,并且PDF中提供了编码和其他信息以从字体中选择字形。 Ghostscript会猜测基于FontName的替代字体,虽然它可能看起来不像原始字体,但它应该打印出来。

然而,

CIDFonts通常使用多个字节进行访问,并且名称暗示了将字节流正确解码为字形数字所需的一些CMap。另一个'问题'是特定字形的字形数量会因“订购”而异。对于未嵌入的CIDFonts,Ghostscript将产生错误输出,如:

Can't find CID font "KozMin-Bold".
Substituting CID font /Adobe-Japan1 for /KozMin-Bold, see 
  doc/Use.htm#CIDFontSubstitution.
The substitute CID font "Adobe-Japan1" is not provided either. Will exit with error.

这告诉你的是PDF引用了一个字体“Kozmin-Bold”,它指定了订购“Adobe-Japan1”和:

1)在Ghostscript的Resource / CIDFont目录中找不到Kozmin-Bold字体

2)在cidfmap文件中没有为Kozmin-Bold定义映射(GS在“gs -h”中列为“搜索路径”的任何LIBPATH中搜索此文件。

3)在cidfmap中没有使用Adobe-Japan1 Ordering的字体映射。如果Ghostscript无法使用步骤1和2找到字体,那么它将使用Ordering替换字体作为字体名称。至少这应该得到正确的字形。

我不想在这里重现cidfmap文档,因为我们在occassion上更新它,但可以在线访问:http://www.artifex.com/gs-current-release/Use.htm#CIDFontSubstitution

示例在Ghostscript文档的该部分中提供。