Я использую:
Мне нужно обрабатывать специальными символами, уникод которых больше, чем u0100.Целевым шрифтом, который я должен использовать, является Arial.Поскольку я не могу ожидать, что Arial присутствует на целевой платформе (например, Linux), я вставил Arial.ttf в свой jar.Мой фактический конфигурационный файл выглядит так:
<fop ...>
<!-- Base URL for resolving relative URLs -->
<base>./</base>
<!-- Font Base URL for resolving relative font URLs -->
<font-base>./</font-base>
<renderers>
<renderer mime="application/pdf">
<fonts>
<font kerning="yes" embed-url="arial.ttf" encoding-mode="auto">
<font-triplet name="Arial" style="normal" weight="normal"/>
<font-triplet name="ArialMT" style="normal" weight="normal"/>
</font>
<!--<directory>C:/Windows/Fonts</directory>-->
</fonts>
<auto-detect/>
</renderer>
...
</fop>
При этом я получаю сообщение об ошибке при загрузке моего конфигурационного файла в fop:
org.apache.fop.apps.FOPException: Failed to resolve font with embed-url 'arial.ttf'
Единственный способ, которым мне удалось получитьдо сих пор он работал, чтобы жестко закодировать путь к папке в файле конфигурации:
<font kerning="yes" embed-url="C:/myapp/arial.ttf" encoding-mode="auto">
<font-triplet name="Arial" style="normal" weight="normal"/>
<font-triplet name="ArialMT" style="normal" weight="normal"/>
</font>
Но, очевидно, это не может быть решением!
Использование тега «directory» для работы в Windows, простопотому что у вас есть Arial там.Но, как упоминалось выше, он также должен работать на Linux, Mac и т. Д.
Тег «автоопределение» также не работает (даже не в Windows) - и не является решением, так как я не могу ожидатьцелевая платформа с установленным Arial.
Есть предложения, чтобы решить эту проблему?