Используйте пользовательские шрифты при создании PDF с помощью iReport - PullRequest
17 голосов
/ 24 января 2012

Версия iReport: 3.7.1

Я подошел к этой проблеме двумя способами.

Мой первый метод

Я создаю pdf страницу в iReport, и у меня в одном из полей (из базы данных) установлен шрифт Гуджарати-Саларль (шрифт для регионального языка Индии).

Этот шрифт доступен в списке шрифтов iReport. Когда я нажимаю на превью, я получаю желаемый результат с полем в нужном стиле шрифта.

Все до сих пор в порядке.

Но созданный файл pdf по-прежнему содержит тот же оригинальный шрифт в английских символах.

Результат одинаков, независимо от того, звоню ли я из приложения или из файла JAVA.

После небольшого изучения я нашел это, второй метод

JRProperties.setProperty("net.sf.jasperreports.default.pdf.font.name", "C:\\Gujrati-Saral-1.ttf");

Устанавливает шрифт pdf для предоставленного ttf шрифта, но теперь весь pdf поставляется шрифтом Guarati-saral, который не тот, который я ищу ..

Есть ли способ специально применить этот шрифт только к этому конкретному полю?

или

при переходе по второму способу есть ли способ не применять шрифт Guarati-saral ко всем другим полям, кроме обязательного?

Ответы [ 4 ]

25 голосов
/ 25 января 2012

Вы должны использовать механизм Font Extensions.

После создания шрифта и его экспорта в файл jar вы должны добавить сгенерированный файл jar в путь к классу приложения.

a) Создание нового шрифта в iReport (через Параметры -> Шрифты -> Кнопка «Установить шрифт»)

Creating the new font descriptor in iReport

b) Экспорт нового шрифта (или существующего) в виде файла JARв iReport (через Параметры -> Шрифты -> Кнопка «Экспортировать как расширение»)

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 здесь .

0 голосов
/ 10 декабря 2016

Для тех, кому нужен русский язык в Jasper Reports (по крайней мере, в opennms старых версий), следующая комбинация делает свое дело без использования расширения шрифта:

Название шрифта: SanSerif Шрифт PDF: Курьер Кодировка PDF: CP1251 PDF Embedded: Да (не уверен, может быть, он работает даже без)

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

0 голосов
/ 04 августа 2015

Выберите поле и перейдите к полевым свойствам и измените

  1. выберите DejaVu Sans в качестве имени шрифта
  2. выберите Pdf Encoding для CP1256 (арабский)
  3. выберитеpdf имя шрифта для Courier

с этими изменениями я получил арабские данные, отображаемые в PDF.

0 голосов
/ 11 декабря 2012

, если у вас есть проблемы с отображением символов UTF-8 в формате PDF, с версии 4.8.0 IReport, не нужно ничего делать! Просто измените шрифт ячеек таблицы с sanserif на Dejavu Sans. вот и все.

...