Использование пользовательских шрифтов при создании pdf с помощью iReport
iReport Версия: 3.7.1
Я подошел к этой проблеме двумя способами.
Мой первый метод
Я создаю страницу pdf
в iReport
, и у меня есть одно из полей (из базы данных), установленное на шрифт Gujarati-Salarl (шрифт для регионального языка Индии).
Этот шрифт доступен в списке шрифтов iReport
.
Когда я нажимаю предварительный просмотр, я получаю желаемый результат, с полем требуемого стиля шрифта.
Все, пока здесь не будет хорошо.
Но созданный файл pdf
все еще содержит один и тот же оригинальный шрифт на английском языке.
Результат будет таким же, если я вызову отчет из приложения или из файла JAVA
.
После небольшого исследования я нашел это, второй метод
JRProperties.setProperty("net.sf.jasperreports.default.pdf.font.name", "C:\\Gujrati-Saral-1.ttf");
Это устанавливает шрифт pdf
в предоставленный ttf
шрифт, но теперь весь pdf
входит в шрифт Guarati-saral, который не является тем, что я ищу.
Есть ли способ специально применить этот шрифт только к одному конкретному полю?
или
при переходе по второму методу есть способ не применять шрифт Guarati-saral ко всем другим полям, кроме обязательного?
Ответы
Ответ 1
Вы должны использовать механизм Font Extensions
.
После создания шрифта и экспорта его в виде файла jar вы должны добавить сгенерированный файл jar в путь класса приложения.
a) Создание нового шрифта в iReport (через Options → Fonts → "Install Font" )
![Creating the new font descriptor in iReport]()
b) Экспорт нового шрифта (или существующего) в виде файла jar в iReport (через Options → Fonts → "Export as extension" )
![enter image description here]()
a) Создание нового шрифта в JasperReports Studio (через окно → Настройки → JasperStudio → Шрифты → "Добавить" )
b) Настройте свои шрифты
![Exporting font as jar file]()
c) Создайте JAR с вашими шрифтами в нем
![Export Font Jar]()
![enter image description here]()
Вы можете найти дополнительную информацию об использовании Font Extensions
здесь.
Ответ 2
если у вас возникли проблемы с отображением символов UTF-8 в pdf,
из версии 4.8.0 IReport, не нужно ничего делать!
Просто измените шрифт ячейки в таблице от sanserif до Dejavu sans.
это он.
Ответ 3
Выберите поле и перейдите к зарегистрированным свойствам и измените
- выберите DejaVu Sans как имя шрифта
- выберите Pdf Encoding to CP1256 (арабский)
- выберите имя шрифта pdf для Courier
с этими изменениями я получил арабские данные, показанные в PDF.
Ответ 4
Для тех, кому нужен русский язык в отчетах Jasper (по крайней мере, в открытых версиях старых версий), следующая комбинация делает трюк без использования расширения шрифта:
Название шрифта: SanSerif
PDF-шрифт: Courier
Кодирование PDF: CP1251
PDF Embedded: Да (не уверен, может быть, он работает даже без)
Алексей Бахмутов