将文本转换为服务器上的路径(svg)


Converting text into path (svg) on server?

如何从TTF字体创建文本并将其转换为静态SVG路径?这样任何人都可以在illustrator中打开它并看到单词(以。svg的形式)。

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

很高兴使用Imagemagick或Inkscape -无论什么都可以完成!

试试这个:

  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…顺便说一句,这个应该填为bug。

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

inkscape -l new_file.svg new_file.pdf

…我知道,这很愚蠢。不,真的,在Inkscape上写一个bug: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>

亲切的问候。

您还可以告诉inkscape以gui模式打开文件,然后发出命令。下面的命令行输入打开svg,选择所有节点,并将它们转换为路径。这将允许您将转换后的svg保存回svg。

inkscape -f your.svg --with-gui --verb EditSelectAll --verb ObjectToPath --verb FileSave --verb FileQuit

小心,这将覆盖你的文件!

或者更简单,使用EasySVG,这个库将文本转换为SVG定义。然后你可以把这个定义放在一个路径中,或者其他什么。

该定义基于字体的SVG文件,但您可以轻松地将TTF文件转换为SVG…