【问题标题】:PostScript /(font name) FindFont produces "not found, using Courier."PostScript /(字体名称) FindFont 产生“未找到,使用 Courier”。
【发布时间】:2020-07-10 10:55:53
【问题描述】:

我想在 .ps 文件中使用 windows 字体,我将使用 Distiller 将其转换为 PDF

Distiller->settings->Font Locations 在要查看的位置列表中有 C:\Windows\Fonts

Lydian Regular 是 c:\Windows\Fonts 中的 truetype 字体,其可嵌入性定义为打印/预览

指令 /(Lydian 正则) findfont
(在我创建的 .ps 文件中)生成错误“Lydian Regular not found, using Courier。”

那么如何让 Distiller 使用这种 (Lydian Regular) 字体并将其嵌入到 pdf 中?

TFAI

【问题讨论】:

  • 我发现一个旧文件 LYDIANN.TTF 被 fontforge 列为 LydianBT-Roman。如果您的字体相同,那么如果您的 Distiller 知道该字体,“/LydianBT-Roman findfont”可能会起作用。 TrueType 字体与 ghostscript 配合得很好。
  • 在 Distiller 中试试这个 postscript 来查看你的字体:(*) {==} 128 string /Font resourceforall

标签: fonts postscript


【解决方案1】:

您不能像这样混合和匹配名称和字符串。您已经正确地意识到名称中不能有空格,因此您不能:

/Lydian Regular findfont

您是正确的,它需要作为字符串处理(Lydian Regular),但您不能只在前面粘贴一个“/”,这不会使字符串成为名称。要将字符串变成名称,您需要使用 cvn 运算符:

(Lydian Regular) cvn findfont

但是,传递给 findfont 的“键”实际上不必是名称,它可以是任何类型,如果它以前通过使用 definefont 与字体相关联。 Distiller 很可能将您的代码视为以下标记:

/
(Lydian Regular)
findfont

所以这是堆栈上的一个空名称,然后是一个字符串,然后是 findfont。 Findfont 然后将查找用字符串定义的字体。我猜这无论如何都行不通。

所以我将从使用 cvn 运算符开始。

但请注意,此仍然可能不起作用,因为该字体可能不称为“Lydian Regular”(在 PostScript 中)。请注意,磁盘上的名称不一定与字体名称有任何关系,正如字体内部定义的那样。

PostScript 也不能​​直接使用 TrueType 字体,它们必须被格式化为 type 42 字体。许多 PostScript 解释器(例如 Ghostscript)可以像使用 Type42 字体一样使用磁盘中的 TrueType 字体,但这涉及到一定程度的猜测。我不知道 Adob​​e Distiller 是否可以做到这一点。

【讨论】:

  • 对不起,我还是很困惑。 /(Calibri) cvn findfont 工作正常,输出在 Calibri 但 /(Lydian) cvn findfont 没有(未找到字体) Calibri 和 Lydian 都在 W:\Windows\fonts 中,它位于 Distillers 路径中以查找字体 I尝试将 Lydian.ttf 转换为 Lydian.t42 并将其放在 Distiller 搜索的路径上,但这不起作用(未找到字体)。 helpx.adobe.com/acrobat/kb/… 说 Distiller 可以识别 truetype 字体那么请问我怎样才能使它工作?
  • 我已经尝试过嵌入被描述为“可编辑”的字体,但它不起作用!
  • 使用 "/(fontname) cvn" 导致解释器将一个空的名称对象 "/" 放在堆栈上,然后是一个字符串对象,然后将字符串转换为名称。然后在堆栈上留下两个名称对象,/ 和 /fontname。如果您随后执行 findfont,它会消耗顶部对象,将空名称对象留在堆栈上。正如我在回答中指出的,最可能的问题是内部字体名称与文件名不同。例如,可以是 Lydian-Regular 或 Lydian,Regular 或只是 Lydian。我没有字体,所以我猜不出来。
  • 在编辑器中打开 Lydian.t42 文件并查找 /FontName 定义。这应该告诉您如何在 postscript 语言中指定字体。 TrueType 和 Type42 字体应该具有相同的名称,以便 Distiller 加载哪种字体可能取决于搜索顺序,假设字体已安装以便 Distiller 可以找到它们。
  • 是的,做到了。不知道 distiller 是否使用了 typ 42 或 truetype,因为两者都在目录中 - 我会做更多的研究。感谢您的帮助
猜你喜欢
  • 2018-12-11
  • 1970-01-01
  • 1970-01-01
  • 2014-04-25
  • 2019-08-09
  • 2018-12-12
  • 2021-01-29
  • 1970-01-01
  • 2019-01-10
相关资源
最近更新 更多