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

发布于 2024-12-20 10:52:58 字数 165 浏览 0 评论 0原文

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

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

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

How can I create text from a TTF font and convert it into a static SVG path? So that anyone could open it in illustrator and see the word (as an .SVG).

Our server is Debain, and we primarily use PHP for backend coding.

Happy to use Imagemagick or Inkscape - whatever gets it done!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

提赋 2024-12-27 10:52:58

试试这个:

  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).

Soooo...无法获得纯 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>

亲切的问候。

Try this:

  1. Create a svg template file in Inkscape (see an example below).
  2. Open that file with a text editor, and place some placeholder tokens for the variables you want to change: The font, and the text.
  3. Create a web page so the user can select the font and write the text.
  4. Retrieve that data in server.
  5. Read the template file, and change the placeholder tokens with the user data.
  6. Call Inkscape through command line.
inkscape template.svg --export-text-to-path --export-id=maintext --export-pdf=new_file.pdf

Now, I know, I know, you said you want an svg output... I tried the option:

--export-plain-svg=new_file.svg

But according to the Inkscape man page:

-T, --export-text-to-path
    Convert text objects to paths on export, where applicable (for PS, EPS, and PDF export).

Soooo... can't get plain svg export and exporting text to path :S ... BTW this should be filled as a bug.

You can serve the PDF, or call again:

inkscape -l new_file.svg new_file.pdf

Which... I know, is quite stupid. No, really, file a bug on Inkscape :P

This is the example Inkscape template:

<?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>

Kind regards.

放飞的风筝 2024-12-27 10:52:58

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

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

请注意,这将覆盖您的文件!

You can also tell inkscape to open your file in gui mode and then issue commands. The following command line input opens an svg, selects all nodes, and converts them into paths. This will allow you to save your converted svg back to svg.

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

Beware, this will override your file!

执手闯天涯 2024-12-27 10:52:58

或者更简单,使用 EasySVG,该库将文本转换为 SVG 定义。然后您可以将此定义放入路径或其他路径中。

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

Or even simpler, use EasySVG, this library converts a text to a SVG definition. You can then put this definition in a path, or whatever.

The definition is based on a font's SVG file but you can easily convert TTF files to SVG...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文