как попросить FOP прочитать внешний шрифт только тогда, когда язык не поддерживается - PullRequest
0 голосов
/ 26 ноября 2018

Хорошо известно, что apache FOP не поддерживает символы японского и китайского языков.Чтобы преодолеть это, я использовал http://unifoundry.com/unifont/index.html.

Однако при использовании внешнего шрифта мне кажется, что я должен использовать его для всех языков.

Мое требование - читать файл внешнего шрифта, только если встроенная поддержка языка отсутствует.

Как попросить FOP обнаруживать и читать файл внешнего шрифта вместо печати #####или же ?????в pdf?

Один из подходов таков: поскольку FOP выдает предупреждение, когда не находит шрифт, могу ли я преобразовать это предупреждение в исключение и прочитать внешний шрифт при исключении?

1 Ответ

0 голосов
/ 27 ноября 2018

Определение и выбор шрифта полностью зависит от вас и от того, как вы их определяете.В XSL FO вы можете сделать то же самое, что и для CSS, например:

 <fo:block font-family="Helvetica, Arial, Arial Unicode"> ... </fo:block>

Это буквально означает выбор шрифта Helvetica первый, Arial второй и Arial Unicode третий для отображения моего текста.

Вы можете объединить это с общим определением или унаследованным определением того, как вы хотите, чтобы механизм форматирования выбирал используемый шрифт.Вы можете использовать «auto», который используется по умолчанию (другими словами, не определено) и выбирает первый шрифт из списка шрифтов, которые могут отображать наибольшее количество символов.Или вы можете установить font-selection-strategy на character-by-character, чтобы механизм форматирования выбрал первый шрифт в списке, который содержит символы для каждого символа.

Неясно, что FOP поддерживает посимвольныйхарактер и это редко используется.Пока ваш список содержит шрифт, который может отображать каждый символ, он всегда будет использоваться слово за словом в любом тексте для вывода.

Тот факт, что вы можете использовать список шрифтов, а также установитьстратегия того, как вы хотите, чтобы обработанные должны получить именно то, что вам нужно.Поместите каждый шрифт в свой список в порядке убывания важности, и пусть механизм форматирования сделает работу, чтобы убедиться, что все ваши символы отображаются.

Вам также нужно настроить все эти шрифты в конфигурации FOP.

...