создание текста в Каире, который экспортируется как <text>в SVG - PullRequest
0 голосов
/ 12 марта 2020

У меня есть приложение на C ++, которое использует cairo (точнее, cairomm) для генерации графики, состоящей из линий, круговых дуг, кривых Безье, некоторых прямоугольников и текста.

Чтобы нарисовать текст, я использую код из текстовый API cairo:

    cairo_context->show_text (label.get_text ());

Это работает и результаты удовлетворительные, НО в файле svg cairo не определяет текст в тегах <text>, а вместо этого определяет <path> каждого символа как <symbol>

<symbol overflow="visible" id="glyph0-1">
  <path style="stroke:none;" d="..."/>
</symbol>

, а затем соединяет текст, используя <use>

<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
  <use href="#glyph0-1" x="309.773128" y="564.141667"/>
  ...
</g>

Это, однако, означает, что я не могу редактировать или переформатировать текст позже в приложение векторной графики c, такое как inkscape.

Меня не волнует качество набора текста, по сути, текст - это просто цифры и некоторая метка короткой оси. Как я могу заставить Каира не быть умным? Или, в качестве альтернативы, какая библиотека подойдет для создания svgs желаемым способом?

...