Преобразование текста в путь (SVG) на сервере? - PullRequest
7 голосов
/ 08 декабря 2011

Как я могу создать текст из шрифта TTF и преобразовать его в статический путь SVG?Чтобы любой мог открыть его в иллюстраторе и увидеть слово (как .SVG).

Наш сервер - Debain, и мы в основном используем PHP для внутреннего кода.Inkscape - что бы это ни делало!

Ответы [ 3 ]

9 голосов
/ 08 декабря 2011

Попробуйте:

  1. Создайте файл шаблона svg в Inkscape (см. Пример ниже).
  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 голосов
/ 27 мая 2014

Вы также можете указать inkscape , чтобы открыть файл в режиме графического интерфейса и затем ввести команд .Следующий ввод командной строки открывает svg, выбирает все узлы и преобразует их в пути.Это позволит вам сохранить конвертированный svg обратно в svg.

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

Осторожно, это переопределит ваш файл!

0 голосов
/ 24 сентября 2014

Или еще проще, используйте EasySVG , эта библиотека преобразует текст в определение SVG. Затем вы можете поместить это определение в путь или как угодно.

Определение основано на файле SVG шрифта, но вы можете легко конвертировать файлы TTF в SVG ...

...