Мое веб-приложение позволяет пользователю писать насыщенный текст внутри CKEditor, а затем экспортировать результат в формате PDF с помощью библиотеки Flying Saucer.
Поскольку они должны писать греческие символы, я решил добавить Arial Unicode MS к доступным шрифтам, выполнив следующие действия:
config.font_names = "*several fonts...*; Arial Unicode MS/Arial Unicode MS, serif";
Этот шрифт теперь отображается правильно в меню CKEditor, но когда я применяю этот шрифт к любому элементу, я получаю следующий результат:
<span style="font-family:arial unicode ms,serif;"> some text </span>
Как вы можете заметить, я потерял символы UpperCase. Это имеет довольно плохой эффект при экспорте PDF, так как Flying Saucer не распознает шрифт и поэтому использует Helvetica, который не поддерживает символы Unicode, поэтому греческие символы не отображаются в PDF файле.
Если я изменю вручную из источника кода
<span style="font-family:arial unicode ms,serif;"> some text </span>
к
<span style="font-family:arial unicode ms,serif;"> some text </span>
то он работает как ожидалось, отображаются греческие символы.
Кто-нибудь раньше встречал эту проблему? Есть ли способ избежать символов UpperCase для замены на LowerCase? Я действительно хочу избежать любой последующей обработки, например:
htmlString = htmlString.replace("arial unicode ms", "Arial Unicode MS");