【问题标题】:Ghostscript Fontmap not updatingGhostscript字体图未更新
【发布时间】:2019-03-23 21:04:58
【问题描述】:

我目前正在尝试将一些 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

非常感谢您!

【问题讨论】:

    标签: pdf ghostscript


    【解决方案1】:

    更新:我现在能够通过在命令行中传递自定义字体映射以及字体文件的位置来自己解决问题:

    -sFONTMAP='/home/MyFonts/MyFontmap.GS' -I'/home/MyFonts/'
    

    就像这个 Ghostscript 加载正确的 FontMap 文件并且还知道在哪里搜索实际的字体文件。

    我希望这对某人有帮助!

    【讨论】:

      【解决方案2】:

      你必须在windows的局部变量中声明“rom”并放入

      rom = "C: \ Program Files \ gs \ gs9.50 \"
      % Rom% Resource / Font / NimbusSans-Regular
      

      等于

      C: \ Program Files \ gs \ gs9.50 \ Resource / Font / NimbusSans-Regular
      

      【讨论】:

        【解决方案3】:

        在旧版本的 Ghostscript 中,我们甚至没有为 Windows 提供支持文件,9.25 是第一个 (Windows) 版本,无需用户额外努力即可实际安装这些文件。

        Windows 版本(实际上是现在的所有版本)默认使用 ROM 文件系统。也就是说,支持文件被编译成可执行文件。这意味着 Ghostscript 不会查看磁盘文件,除非您告诉它。

        您需要添加一个 -I(包含)指令来告诉 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 指定路径时使用正斜杠 (/) 而不是反斜杠字符。它很乐意同时使用两者,根据需要转换为操作系统版本,您不必担心是否需要双反斜杠。

        并非所有字体都是 Fonts,有时它们是 CIDFonts,您需要编辑 cidfmap 来添加它们。内容的格式不同,因为需要更多信息来构造缺失的 CIDFont 的替代品。

        【讨论】:

        • 非常感谢!包含工作,现在正在读取正确的字体图!但是,不幸的是我现在收到错误:找不到(或无法打开)字体文件 =C:/Program Files/gs/gs9.25/Resource/Font/NimbusSans-Bold 字体文件确实存在地点。你有什么想法,为什么它不能正确加载字体?
        • 我能够解决最后一个错误:因为包含路径中有一个空格,所以它必须用引号引起来。 -I"C:/Program Files/gs/gs9.25/Resource/Init" 现在它可以正常工作了。再次感谢!
        • 嘿,我正在运行windows 10,我安装了一个我想使用的字体(Bakery.ttf),我把它放在底部的Fontmap.GS中并使用绝对路径来引用它(我尝试了我实际看到文件的路径和属性下方列出的路径),将其保存为管理员,然后在 gs 交互式 gui 中运行 /Bakery findfont... 不走运。
        猜你喜欢
        • 2016-07-03
        • 2014-11-26
        • 1970-01-01
        • 1970-01-01
        • 2014-10-25
        • 1970-01-01
        • 2017-02-23
        • 2013-09-13
        • 2012-09-08
        相关资源
        最近更新 更多