Unicode (кириллица) текст в SVG в Apache FOP (XML) - PullRequest
1 голос
/ 15 мая 2019

(Я не знаю, какую версию FOP я использую. У меня есть только API / HTTP доступ к сервису. Я спрашиваю.)

Я делаю PDF с Apache FOP. Содержит SVG с <text>. Некоторый текст болгарский / кириллический, внутри и снаружи SVG.

В веб-браузере болгарский язык не нуждается в кодировке:

  • В <table>: <td class="label">Спортуване</td>
  • В <svg>: <text x="153" y="91">Спортуване</text>

Во входном XML-коде Apache FOP требуется кодировка:

  • Вне SVG: <fop:block>&#1057;&#1087;&#1086;&#1088;&#1090;&#1091;&#1074;&#1072;&#1085;&#1077;</fop:block>
    • Каждый символ кодируется в &#0000;
    • Это работает, снаружи SVG
  • Внутри SVG: <svg:text x="153" y="91" >&#1057;&#1087;&#1086;&#1088;&#1090;&#1091;&#1074;&#1072;&#1085;&#1077;</svg:text>
    • (локальное пространство имен svg)
    • Точно такая же кодировка
    • не работает = (

Так что единственная часть, которая не работает, это текст внутри SVG. Текст снаружи отлично работает.

Это не шрифт. Я могу изменить внутренние и внешние шрифты SVG на Times ( по умолчанию ), и то же самое происходит с новым шрифтом: работает вне SVG, не внутри.

Результат браузера:

SVG in web browser

PDF результат:

SVG in PDF

PDF, вне SVG:

Non-SVG in PDF

Мое специальное написание Aesthetics (aëstéthics) работает в формате PDF SVG. Это только частично закодировано, так как некоторые символы безопасны ASCII: <svg:text x="436" y="218">a&#235;st&#233;thics</svg:text>. Символы &#1234; работают так же, как и вне SVG для кириллицы.

Как мне добавить Unicode <text> в SVG в FOP ??


«Новая» версия (1.1) на том же сервере, в CLI:

Без конфигурации шрифтов, Unicode не работает, весь текст #####, внутри и снаружи SVG.

С настройкой шрифтов (шрифты TTF, скопированные из Windows):

fop -fo input.xml -c fop.conf.xml -pdf output-1.pdf

Куча этих предупреждений:

Следующая функция еще не реализована в Apache FOP: table-layout = "auto" (в fo: table) (см. Положение 29:34)

и некоторые из них:

Символ "И" (0x418, Iicyrillic) отсутствует в шрифте "Helvetica".

но результат очень приличный. Так же, как и в версии 0.9. Внутри SVG нет Unicode, но снаружи работает.


OMG OMG OMG версии 2.1 на другом сервере работает !!

Даже со странной ошибкой Java:

[предупреждение] / usr / bin / fop: аромат JVM 'sun' не понят

Если на нужном сервере была доступна только версия 2.1 с http api acces ...

pdf output fop 2.1

...