1

我正在尝试使用 Adob​​e Normalizer 将 PostScript 文件转换为 PDF/A。

我遇到的问题是,如果找不到字体,那就很难停止。我添加了“--ignorestdttfonts=off”,这有点帮助。这是我用于命令字符串的内容:

demonorm -efi --ignorestdttfonts=off -r0 -P ICCProfiles\ -B ".\Settings\PDFA1b 2005 RGB.joboptions" +n -O -O c:\NormalizerOutput InputPsFile.ps

我在我的 PostScript 文件中使用 /Times-Roman,并且我有 times.ttf 作为安装的字体,但我收到此错误:

%%[ Error: Times-Roman not found. Font cannot be embedded. ]%%

所以我有两个问题:

  1. 给定一个 TTF 文件,我如何确切知道 Adob​​e Normalizer 使用什么字体名称?
  2. 找不到字体时如何替换字体?默认是使用 Courier,但这似乎没有发生。我明确添加了“--allowdefaultfont=on --defaultfont=Courier”,但没有效果。
4

2 回答 2

2

Adobe Normalizer 将始终查找 PostScript 字体名称。不幸的是,与其他 Adob​​e 产品不同,它不会创建字体列表 (.lst) 文件,您可以在其中轻松查看“字体名称”和字体文件在系统上的位置。因此,您将不得不寻找其他方法来获取确切的 PostScript 字体名称。

查看 PostScript 字体名称的一种简单方法是使用 Distiller 打开 Distiller 设置文件 (joboptions)。您想使用 Distiller,因为您希望它在 GUI 中打开。在左侧面板上选择“字体”,然后在嵌入 > 字体源 > 选择 C:\WINDOWS\Fonts\(假设 TTF 文件安装在此处)。下面的窗口将列出 C:\Windows\Fonts 位置中的所有字体。字体按其 PostScript 字体名称列出。请注意 PostScript 字体名称不带空格。查找您已安装的 Times 或 Times Roman 字体。

这对于 Times 或 Times-Roman 来说确实很棘手。您的 PostScript 文件(输入文件)是指 Type1 还是 TrueType 字体?

在 Normalizer 文档 (p174) 中,Times 或 Times New Roman 系列显示为:

时代

  • 时代大胆
  • Times-BoldItalic
  • 时代斜体
  • 时代-罗马

英语字体格式一种

  • TimesNewRomanPS-BoldItalicMT
  • TimesNewRomanPS-BoldMT
  • TimesNewRomanPS-ItalicMT
  • 时代新罗马PSMT

请注意,Times 和 Times New Roman 不是同一种字体。Times 是 Type1 字体,如果您的系统上没有安装此字体,则 Normalizer 在其错误“未找到 Times-Roman。字体无法嵌入”中是正确的。

希望这些信息有所帮助。

于 2016-08-19T17:53:26.400 回答
1

Adobe Normalizer,据我了解(我没有副本)本质上是 Acrobat Distiller 的服务器版本。它接受 PostScript 作为输入并提供 PDF 文件。

所以有几种可能:

1) Normalizer 不能使用服务器上安装的 TrueType 字体。从您的描述来看,情况似乎并非如此,正如您所说的 --ignorestdttfonts '有一点帮助'(知道什么改进可能很有用......)

2)因为缺少的字体是Times-Roman,它根本没有嵌入字体,因为它不需要。'base 14' 字体假定包含在任何 PDF 使用者中,并且它们不需要包含在内。老实说,这似乎是最有可能的,因为我原以为 Adob​​e 会随 Normalizer 一起提供 base 14 字体。

3) TrueType 字体对 Normalizer 不可用。你还没有说你是如何安装times.ttf的。您是否只是将它安装在操作系统上(以及您使用的是什么操作系统?)或者您是否以某种方式将其添加到 Normalizer?

4)您可能(如您所想)字体名称不正确。问题是您不能直接在 PostScript 中使用 TrueType 字体。为了在 PostScript 程序中使用,它们必须转换为 42 型字体。可能是 Normalizer 根本无法做到这一点。你有什么理由认为它可以吗?如果可以,那么它可能需要一个 TrueType POST 表,该表是可选的,并且可能不会出现在您的字体中。但是,字体名称将与 TrueType 字体名称相同。拥有的 times.ttf被称为“Times New Roman”,实际上是一种OpenType字体。如果要使用带空格的字体名称,则必须创建一个字符串并转换为 name :

(Times New Roman) cvn findfont

如果要检查默认字体的操作,我建议使用不是 base 14 之一的字体名称,例如:

%!PS
/NoSuchFont findfont 20 scalefont setfont
10 10 moveto
(Hello World) show
showpage

通过 Normalizer 运行它,看看会出现什么字体。当然,它很可能只是将字体请求留在原处。

最后; 由于这是一个商业产品,我认为您有权支持,问 Adob​​e 不是更简单吗?

于 2016-05-22T16:08:32.923 回答