Жирный шрифт не работает в Jaspersoft Studio для шрифтов, отличных от шрифтов без засечек

В Jaspersoft Studio я создал отчет, в котором хочу выделить заголовок жирным шрифтом. Если я использую шрифт без засечек, то он работает правильно. Если я использую другие шрифты, жирный шрифт отображается в предварительном просмотре Jaspersoft Studio, но не отображается, когда отчет запускается на сервере Jasper. Пожалуйста помоги.


person Akhilesh    schedule 22.09.2014    source источник
comment
Для правильных шрифтов в PDF-файлах необходимы особые соображения. Расширения шрифтов для встроенной библиотеки JasperReports являются решением. Однако я не знаю, как сделать то же самое на сервере Jasper.   -  person mkl    schedule 23.09.2014


Ответы (3)


Вам нужно создать jar расширения шрифтов jasper и поместить его в свой путь к классам как во время компиляции (при компиляции jrxmls), так и во время выполнения (при выполнении отчетов). Вот как должна выглядеть банка (например, jasperreports-fonts-5.5.2.jar):

pic1

pic2

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 для шрифтов, которые вы хотите добавить в банку.

person keenUser    schedule 08.10.2014

Просто зайдите на этот сайт, чтобы добавить свои собственные шрифты в PDF с помощью Jasper:

Пользовательский шрифт с расширением шрифта

Там есть иллюстрированное руководство, показывающее, как его создать. Просто загрузите файл *.ttf для вашего шрифта (например, Arial.ttf.)

Создайте расширение и экспортируйте его как файл *.jar с помощью Eclipse.

Наконец, добавьте *.jar в свой проект. Вот и все.

person Arundev    schedule 03.01.2018

Добавление артефакта maven сработало для меня

<dependency>
    <groupId>net.sf.jasperreports</groupId>
    <artifactId>jasperreports-fonts</artifactId>
    <version>6.16.0</version>
</dependency>
person Asad Sarwar    schedule 18.02.2021