У меня проблема с встраиванием польских шрифтов в PDF, преобразованный из HTML.
Мой HTML-код имеет стиль в теле:
<BODY style="font-family: Tahoma, Arial, sans-serif;font-size : 8pt;">
Я попробовал 2 способа преобразования такого HTML в PDF:
- FOP с htmlcleaner
- iText с летающей тарелкой
Для FOP я могу добавить все используемые шрифты в его файл конфигурации, а затем в созданный PDF-файл будут встроены эти шрифты (если шрифт используется в HTML). В результате PDF у меня есть шрифт Tahoma в кодировке Identity-H. Выглядит хорошо - все польские буквы отображаются как положено.
Тогда я попробовал такое преобразование с помощью iText: кажется проще, потому что мне не нужно создавать преобразование для каждого HTML. К сожалению, я не знаю, как встроить использованные шрифты в итоговый PDF. В большинстве примеров я нашел создание PDF с нуля, и я не знаю, как применить эти методы к Flying Saucer ITextRenderer или другому объекту, используемому при преобразовании.
Мой текущий код пытается добавить шрифты в PDFCreationListener.preOpen()
, получая ITextFontResolver
и добавляя шрифт fs.addFont(path, true);
. Но у всех .pdf, которые я создаю, нет нужных мне шрифтов.
Вторая проблема заключается в том, что в результате PDF не содержит польских букв. Это проблема в Летающей тарелке или в iText? Acrobat показывает, что созданный документ PDF использует Helvetica с кодировкой Ansi и ArialMT в качестве шрифта. Я думаю, что эта кодировка Анси не очень хорошая. Как установить польскую кодировку (Identity-H)?