Правильный способ — использовать font-extensions. pdfEncoding="Identity-H"
устарело.
Сначала очистите этот контрольный список для отображения шрифта в формате pdf:
- Мой фактический
.tff
поддерживается (OpenType) и может ли шрифт на самом деле рендеринг персонажа. Не все шрифты отображают все символы в UTF-8
Если вы правильно создали расширение шрифта и оно не работает, вероятно, это ваша проблема.
- Передаю ли я правильную кодировку в iText. В случае сомнений (или вообще) используйте кодировку Identity-H, это рекомендуется для более новых стандартов PDF и дает вам возможность смешивать разные кодировки.
Identity-H кажется в порядке
- Является ли мой шрифт встроенным, чтобы, если я поделюсь файлом PDF, компьютеры, на которых нет этого шрифта, могли отображать содержимое.
Вставьте свой шрифт (в противном случае, если вы заставите его работать на своем компьютере, он может не работать на других), обратите внимание, что в вашем jrxml есть isPdfEmbedded=false
, удалите тег и в расширении шрифта выберите true
или установите тег на true
.
Теперь просто сгенерируйте правильно font-extension и добавьте его в свой classpath
,
Как добавить расширения шрифтов
EDIT: после того, как пользователь передал шрифт
Шрифт Krutidev_011.TTF
не является допустимым шрифтом ttf, возможно, потому, что, к сожалению, стандарт Apple и стандарт Microsoft расходятся (я предполагаю, что ваш шрифт Apple ttf, а не ttf открытого типа).
Caused by: net.sf.jasperreports.engine.JRRuntimeException: java.awt.FontFormatException: java.nio.BufferUnderflowException
at net.sf.jasperreports.engine.fonts.SimpleFontFace.setTtf(SimpleFontFace.java:178)
Я попытался загрузить действительный шрифт ttf Lohit Devanagari из Интернета и добавить его как расширение шрифта, fontName="Lohit Devanagari"
вот мой результат:
Он отображает шрифты, но в результате может возникнуть проблема с лигатуризатором, о том, как решить эту проблему, см., Например, Почему гуджаратско-индийский текст неправильно отображается при использовании Arial Unicode MS?
Если вы хотите попробовать это расширение шрифта, я использовал банку расширения шрифта для Lohit Devanagari, не забудьте установить fontName="Lohit Devanagari"
person
Petter Friberg
schedule
15.12.2015