Ghostscript 字体图未更新
Ghostscript Fontmap not updating
我目前正在尝试将一些 TrueType 字体添加到我当前的 Ghostscript 设置中。
(Windows 10,Ghostscript 9.25,64 位)
我正在编辑文件夹 C:\Program Files\gs\gs9.25\Resource\Init 中的 Fontmap.GS 文件,但不知何故,这并没有改变行为。 Ghostscript 仍在用 Helvetiva-BoldMT 替换 Arial-BoldMT,即使我已经指定了在这种情况下使用的字体:
/ArialMT (arial.ttf) ;
/Arial-BoldMT (arialbd.ttf) ;
/Arial-ItalicMT (ariali.ttf) ;
/Arial-BoldItalicMT (arialbi.ttf) ;
不知道有没有办法更新Fontmap?
(或者可能有另一个正在使用的 Fontmap 文件,而我正在编辑错误的文件?)
这是我在转换使用 Arial-BoldMT(未嵌入)的文档时得到的 shell 答案:
gswin64c -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dNOPAUSE -dBATCH -dAutoRotatePages=/None -sOutputFile=bt_c.pdf bt.pdf
GPL Ghostscript 9.25 (2018-09-13)
Copyright (C) 2018 Artifex Software, Inc. All rights reserved.
This software comes with NO WARRANTY: see the file PUBLIC for details.
Processing pages 1 through 1.
Page 1
Querying operating system for font files...
Substituting font Helvetica-Bold for Arial-BoldMT.
Loading NimbusSans-Bold font from %rom%Resource/Font/NimbusSans-Bold... 4854008 3414088 2431224 1058145 3 done.
字体文件本身放在 C:\Program Files\gs\gs9.25\Resource\Font
在此先感谢您!
在旧版本的 Ghostscript 中,我们甚至没有提供 Windows 的支持文件,9.25 是第一个 (Windows) 版本,用户无需额外努力即可实际安装这些文件。
Windows 版本(实际上现在所有版本)默认使用 ROM 文件系统。也就是说,支持文件被编译成可执行文件。这意味着 Ghostscript 不会查看磁盘文件,除非您告诉它。
您需要添加一个 -I (Include) 指令来告诉 Ghostscript 查看磁盘上修改后的文件。在你的情况下是:
-IC:/Program Files/gs/gs9.25/Resource/Init
我建议您不要将 TrueType 文件放在 Fonts 文件夹中,将它们放在 Windows/Fonts 文件夹中并修改 fontmap.GS 的内容,以便包含路径:
/ArialMT (c:/Windows/Fonts/arial.ttf) ;
/Arial-BoldMT (c:/Windows/Fonts/arialbd.ttf) ;
/Arial-ItalicMT (c:/Windows/Fonts/ariali.ttf) ;
/Arial-BoldItalicMT (c:/Windows/Fonts/arialbi.ttf) ;
作为一些额外的说明; PDF 文件中的许多字体名称并不遵循原始 TrueType 字体的名称。将 Arial,Bold
视为字体名称并不少见。如果您已经定义了 Arial-BoldMT,则可以在 fontmap.GS 文件中为其添加一个别名:
/Arial,Bold /Arial-BoldMT ;
我建议在为 Ghostscript 指定路径时使用正斜杠 (/) 而不是反斜杠字符。它愉快地使用两者,根据需要转换为 OS 版本,您不必担心是否需要双反斜杠。
并非所有字体都是 Fonts,有时它们是 CIDFonts,您需要编辑 cidfmap 以添加这些字体。内容的格式不同,因为需要更多信息来构造缺失的 CIDFont 的替代品。
你必须在windows的局部变量中声明"rom"并把
rom = "C: \ Program Files \ gs \ gs9.50 \"
% Rom% Resource / Font / NimbusSans-Regular
等于
C: \ Program Files \ gs \ gs9.50 \ Resource / Font / NimbusSans-Regular
更新:我现在可以通过在命令行中传递自定义字体图以及字体文件的位置来自己解决问题:
-sFONTMAP='/home/MyFonts/MyFontmap.GS' -I'/home/MyFonts/'
就像这样,Ghostscript 会加载正确的 FontMap 文件,并且还知道在哪里搜索实际的字体文件。
希望对大家有所帮助!
我目前正在尝试将一些 TrueType 字体添加到我当前的 Ghostscript 设置中。 (Windows 10,Ghostscript 9.25,64 位)
我正在编辑文件夹 C:\Program Files\gs\gs9.25\Resource\Init 中的 Fontmap.GS 文件,但不知何故,这并没有改变行为。 Ghostscript 仍在用 Helvetiva-BoldMT 替换 Arial-BoldMT,即使我已经指定了在这种情况下使用的字体:
/ArialMT (arial.ttf) ;
/Arial-BoldMT (arialbd.ttf) ;
/Arial-ItalicMT (ariali.ttf) ;
/Arial-BoldItalicMT (arialbi.ttf) ;
不知道有没有办法更新Fontmap? (或者可能有另一个正在使用的 Fontmap 文件,而我正在编辑错误的文件?)
这是我在转换使用 Arial-BoldMT(未嵌入)的文档时得到的 shell 答案:
gswin64c -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dNOPAUSE -dBATCH -dAutoRotatePages=/None -sOutputFile=bt_c.pdf bt.pdf
GPL Ghostscript 9.25 (2018-09-13)
Copyright (C) 2018 Artifex Software, Inc. All rights reserved.
This software comes with NO WARRANTY: see the file PUBLIC for details.
Processing pages 1 through 1.
Page 1
Querying operating system for font files...
Substituting font Helvetica-Bold for Arial-BoldMT.
Loading NimbusSans-Bold font from %rom%Resource/Font/NimbusSans-Bold... 4854008 3414088 2431224 1058145 3 done.
字体文件本身放在 C:\Program Files\gs\gs9.25\Resource\Font
在此先感谢您!
在旧版本的 Ghostscript 中,我们甚至没有提供 Windows 的支持文件,9.25 是第一个 (Windows) 版本,用户无需额外努力即可实际安装这些文件。
Windows 版本(实际上现在所有版本)默认使用 ROM 文件系统。也就是说,支持文件被编译成可执行文件。这意味着 Ghostscript 不会查看磁盘文件,除非您告诉它。
您需要添加一个 -I (Include) 指令来告诉 Ghostscript 查看磁盘上修改后的文件。在你的情况下是:
-IC:/Program Files/gs/gs9.25/Resource/Init
我建议您不要将 TrueType 文件放在 Fonts 文件夹中,将它们放在 Windows/Fonts 文件夹中并修改 fontmap.GS 的内容,以便包含路径:
/ArialMT (c:/Windows/Fonts/arial.ttf) ;
/Arial-BoldMT (c:/Windows/Fonts/arialbd.ttf) ;
/Arial-ItalicMT (c:/Windows/Fonts/ariali.ttf) ;
/Arial-BoldItalicMT (c:/Windows/Fonts/arialbi.ttf) ;
作为一些额外的说明; PDF 文件中的许多字体名称并不遵循原始 TrueType 字体的名称。将 Arial,Bold
视为字体名称并不少见。如果您已经定义了 Arial-BoldMT,则可以在 fontmap.GS 文件中为其添加一个别名:
/Arial,Bold /Arial-BoldMT ;
我建议在为 Ghostscript 指定路径时使用正斜杠 (/) 而不是反斜杠字符。它愉快地使用两者,根据需要转换为 OS 版本,您不必担心是否需要双反斜杠。
并非所有字体都是 Fonts,有时它们是 CIDFonts,您需要编辑 cidfmap 以添加这些字体。内容的格式不同,因为需要更多信息来构造缺失的 CIDFont 的替代品。
你必须在windows的局部变量中声明"rom"并把
rom = "C: \ Program Files \ gs \ gs9.50 \"
% Rom% Resource / Font / NimbusSans-Regular
等于
C: \ Program Files \ gs \ gs9.50 \ Resource / Font / NimbusSans-Regular
更新:我现在可以通过在命令行中传递自定义字体图以及字体文件的位置来自己解决问题:
-sFONTMAP='/home/MyFonts/MyFontmap.GS' -I'/home/MyFonts/'
就像这样,Ghostscript 会加载正确的 FontMap 文件,并且还知道在哪里搜索实际的字体文件。
希望对大家有所帮助!