В Jaspersoft Studio я создал отчет, в котором хочу выделить заголовок жирным шрифтом. Если я использую шрифт без засечек, то он работает правильно. Если я использую другие шрифты, жирный шрифт отображается в предварительном просмотре Jaspersoft Studio, но не отображается, когда отчет запускается на сервере Jasper. Пожалуйста помоги.
Жирный шрифт не работает в Jaspersoft Studio для шрифтов, отличных от шрифтов без засечек
Ответы (3)
Вам нужно создать jar расширения шрифтов jasper и поместить его в свой путь к классам как во время компиляции (при компиляции jrxmls), так и во время выполнения (при выполнении отчетов). Вот как должна выглядеть банка (например, jasperreports-fonts-5.5.2.jar):
jasperreports_extension.properties должен содержать несколько свойств для инициализации шрифтов. (Я использовал инициализацию шрифтов на основе пружины. Возможно, вам потребуется добавить пару пружинных банок, таких как spring-core, spring-beans и т. Д., В ваш путь к классам, если они еще не присутствуют.)
net.sf.jasperreports.extension.registry.factory.fonts=net.sf.jasperreports.extensions.SpringExtensionsRegistryFactory
net.sf.jasperreports.extension.fonts.spring.beans.resource=fonts/fonts_def.xml
Теперь файл fonts.xml определяет, какие шрифты вы хотите добавить.
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<bean id="fontBean001" class="net.sf.jasperreports.engine.fonts.SimpleFontFamily">
<property name="name" value="Tahoma"/>
<property name="normal" value="fonts/Tahoma.ttf"/>
<property name="bold" value="fonts/Tahoma_Bold.ttf"/>
<property name="pdfEmbedded" value="true"/>
</bean>
<bean id="fontBean002" class="net.sf.jasperreports.engine.fonts.SimpleFontFamily">
<property name="name" value="Arial"/>
<property name="normal" value="fonts/Arial.ttf"/>
<property name="bold" value="fonts/Arial_Bold.ttf"/>
<property name="italic" value="fonts/Arial_Italic.ttf"/>
<property name="boldItalic" value="fonts/Arial_Bold_Italic.ttf"/>
<property name="pdfEmbedded" value="true"/>
</bean>
</beans>
Обратите внимание, что свойство "pdfEmbedded"
равно "true"
. Наконец, добавьте файл .ttf для шрифтов, которые вы хотите добавить в банку.
Просто зайдите на этот сайт, чтобы добавить свои собственные шрифты в PDF с помощью Jasper:
Пользовательский шрифт с расширением шрифта
Там есть иллюстрированное руководство, показывающее, как его создать. Просто загрузите файл *.ttf для вашего шрифта (например, Arial.ttf.)
Создайте расширение и экспортируйте его как файл *.jar с помощью Eclipse.
Наконец, добавьте *.jar в свой проект. Вот и все.
Добавление артефакта maven сработало для меня
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports-fonts</artifactId>
<version>6.16.0</version>
</dependency>