Использование пользовательских шрифтов при создании 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: Да (не уверен, может быть, он работает даже без)

Алексей Бахмутов