【问题标题】:Eps to svg, special character not convertedeps 到 svg,特殊字符未转换
【发布时间】:2018-01-30 23:34:07
【问题描述】:

我正在尝试将 eps(使用 Mathtype 创建)转换为 svg 格式。 我对数学字符没有任何问题,但我无法获得任何特殊字符(又名 àâä...)

我在 unix 和 windows 上试过,但都没有。 使用的字体是Arial,并且安装正确(Windows默认,unix字体文件夹中手动添加)

我在 windows 字体管理器中打开了 Arial 字体,并且非工作字符在其中。 他们只是没有被转换。

实际上,要转换,我使用 Inkscape(带有 ghostscript),如下所示: inkscape -z -f in.eps -l out.svg

提前致谢,

编辑:

Added in.eps file 

https://pastebin.com/vBtUVy69

【问题讨论】:

    标签: svg fonts ghostscript inkscape


    【解决方案1】:

    您在 Windows 机器上安装了 Arial 这一事实与问题无关。

    EPS 文件是否包含嵌入的 Arial 字体?如果不是,那么您将依赖字体替换。您可能应该发布一个示例 EPS 文件,以便我们查看。

    我的猜测是 Arial 字体没有嵌入,所以 Ghostscript 替代了 Helvetica,而 Helvetica 字体没有那些字形,或者它们没有以 EPS 文件认为的字符代码编码。

    [编辑]

    EPS cmets 说 DocumentNeededFonts: Arial-BoldMT",因此 EPS 不包含字体,您可以使用字体替换。

    我无法立即告诉您为什么 SVG 会显示 Arial。我可以猜到,但由于没有关于您如何制作 SVG 的完整描述,我无法(显然)确定。

    现在...如果转换路径使用 Ghostscript 的 pdfwrite 设备从 EPS 创建一个 PDF 文件,然后该 PDF 文件以某种方式转换为 Inkscape 的内部格式(或使用某些东西直接转换为 SVG除了 Ghostscript),那么发生的事情是 Ghostscript 正在用 Helvetica 代替缺少的 Arial-BoldMT,当它生成 PDF 文件时,它嵌入了 Helvetica 字体,但 它是 Arial-BoldMT(或其他) .这是字体替换的结果,被替换的字体被重命名为预期的名称。

    我认为你可以通过将-dEmbedAllFonts 设置为 false 来避免这种情况,尽管我还没有测试过。即使你这样做了,所发生的只是 PDF 文件没有字体,就像 EPS 文件一样。因此,SVG 创建将(可能)必须使用替代字体。你所做的只是把问题推得更深。

    对此的正确答案是“始终嵌入字体”。

    您还可以通过在 ghostpdl/Resource/Init 中编辑其 fontmap.GS 文件来为 Ghostscript 提供 Arial-BoldMT 字体,以用于资源未内置到 ROM 文件系统中的构建。对于确实使用 ROM 文件系统的构建(例如 Windows),您必须获取资源的副本(来自 Ghostscript Git 存储库),修改 fontmap.GS 文件,然后通过指向它来告诉 Ghostscript 使用修改后的资源-I 开关。

    这仍然是一个 hack,因为它的 TrueType 字体被用作 PostScript 字体的替代品,所以 Ghostscript 内部进行了一定程度的猜测,但它通常运行良好,YMMV。

    【讨论】:

    • 我已添加 in.eps。实际上,似乎没有嵌入 Arial 字体。但是如果使用 Helvetica 作为替代,为什么在 svg 结果中,字体设置为 arial?
    • 编辑了我的答案,评论太长了。
    猜你喜欢
    • 1970-01-01
    • 2013-10-03
    • 1970-01-01
    • 2022-07-10
    • 1970-01-01
    • 2019-11-04
    • 2012-07-10
    • 1970-01-01
    • 2014-05-04
    相关资源
    最近更新 更多