fonts - PostScript /(字体名称) FindFont 产生“未找到,使用 Courier”。
问题描述
我想在 .ps 文件中使用 windows 字体,我将使用 Distiller 将其转换为 PDF
Distiller->settings->Font Locations 在要查看的位置列表中有 C:\Windows\Fonts
Lydian Regular 是 c:\Windows\Fonts 中的 truetype 字体,其可嵌入性定义为打印/预览
指令 /(Lydian Regular) findfont
(在我创建的 .ps 文件中)生成错误“Lydian Regular not found, using Courier”。
那么如何让 Distiller 使用这种(Lydian Regular)字体并将其嵌入到 pdf 中?
TFAI
解决方案
您不能像这样混合和匹配名称和字符串。您已经正确地意识到名称中不能有空格,因此您不能:
/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 字体,但这涉及到一定程度的猜测。我不知道 Adobe Distiller 是否可以做到这一点。
推荐阅读
- sqlite - 如何在 sqflite 中查询过去 3 小时?
- algorithm - 在 Dijkstra 的算法中,为什么必须首先扩展当前成本最低的节点?
- java - 如何从另一个类或方法获取 TextField 值
- concurrency - 点击 IO::Notifications 时出现“无源发射或反应”错误
- emacs - Shell 脚本模式在每次 emacs 启动时自动启动
- css - 如何使内联块跨度继承其所有祖先的所有文本装饰?
- php - 在php中分隔数组值
- vue.js - 如何使用 vue-router 进行重定向?
- regex - 如何使用正则表达式匹配换行符
- reactjs - 使用来自 API.graphql 调用的数据映射 ReactJS 列表