在服务器上将文本转换为路径(SVG)?

10

如何使用TTF字体创建文本并将其转换为静态SVG路径?以便任何人都可以在Illustrator中打开并查看单词(作为.SVG文件)。

我们的服务器是Debian,并且我们主要使用PHP进行后端编码。

乐意使用Imagemagick或Inkscape-只要能完成任务!


请参见https://dev59.com/0F3Va4cB1Zd3GeqPC7Tt。 - Erik Dahlström
3个回答

10

尝试以下步骤:

  1. 在Inkscape中创建一个SVG模板文件(参见下面的示例)。
  2. 用文本编辑器打开该文件,并为您想要更改的变量放置一些占位符标记:字体和文本。
  3. 创建一个网页,以便用户可以选择字体并编写文本。
  4. 在服务器上检索该数据。
  5. 读取模板文件,并使用用户数据更改占位符标记。
  6. 通过命令行调用Inkscape。
inkscape template.svg --export-text-to-path --export-id=maintext --export-pdf=new_file.pdf

现在,我知道,我知道,你说你想要一个SVG输出... 我尝试了这个选项:
--export-plain-svg=new_file.svg

但是根据Inkscape的手册:
-T, --export-text-to-path
    Convert text objects to paths on export, where applicable (for PS, EPS, and PDF export).

所以...无法获得纯SVG导出和将文本导出为路径:S ...顺便说一下,这应该填写为错误报告。

您可以提供PDF文件,或再次调用:

inkscape -l new_file.svg new_file.pdf

我知道这很愚蠢,但请在Inkscape上提交错误报告 :P

这是Inkscape模板示例:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->

<svg
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:cc="http://creativecommons.org/ns#"
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:svg="http://www.w3.org/2000/svg"
   xmlns="http://www.w3.org/2000/svg"
   version="1.1"
   width="440.29297"
   height="39.824219"
   id="svg2">
  <defs
     id="defs4" />
  <metadata
     id="metadata7">
    <rdf:RDF>
      <cc:Work
         rdf:about="">
        <dc:format>image/svg+xml</dc:format>
        <dc:type
           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
        <dc:title></dc:title>
      </cc:Work>
    </rdf:RDF>
  </metadata>
  <text
     x="-3.4374955"
     y="30.390625"
     id="maintext"
     xml:space="preserve"
     style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:[FONT_PLACEHOLDER]"><tspan
       x="-3.4374955"
       y="30.390625"
       id="tspan3006"
       style="fill:#000000">[TEXT_PLACEHOLDER]</tspan></text>
</svg>

敬祝好运。


2
偶然发现了这篇来自2011年的帖子。在检查了inkscape文档(https://inkscape.org/doc/inkscape-man.html)之后,**导出文本到SVG路径**现已实现。 - Webchen

3
你还可以告诉inkscapegui模式打开你的文件,然后发出命令。以下命令行输入将打开一个svg文件,选择所有节点,并将它们转换为路径。这将允许你将转换后的svg文件保存回svg。
inkscape -f your.svg --with-gui --verb EditSelectAll --verb ObjectToPath --verb FileSave --verb FileQuit

注意,这将会覆盖你的文件!


0
甚至更简单的方法,使用EasySVG,这个库可以将文本转换为SVG定义。然后你可以把这个定义放在路径或其他地方。
这个定义是基于字体的SVG文件的,但你可以很容易地将TTF文件转换成SVG...

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接