大胆不能在Jaspersoft Studio中使用除sans serif之外的字体

时间:2014-09-22 15:10:12

标签: jasper-reports pdf-generation jasperserver export-to-pdf

在Jaspersoft Studio中,我创建了一个报告,我希望以粗体显示标题。如果我使用sans serif字体,那么它正常工作。如果我使用其他字体,则在Jaspersoft Studio的预览中会显示粗体,但在Jasper服务器中运行报告时不显示。 请帮忙。

3 个答案:

答案 0 :(得分:5)

您需要创建一个jasper字体扩展jar并将其放入类路径中,包括编译时(编译jrxmls时)以及运行时(运行报告时)。以下是jar(例如 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"。最后为要添加到jar的字体添加.ttf文件。

答案 1 :(得分:1)

只需访问此网站,使用Jasper将自定义字体添加到PDF:

Custom Font with the Font Extension

有一个插图指南,向您展示如何创建它。只需为您的字体下载* .ttf文件(例如:Arial.ttf。)

创建扩展并在Eclipse的帮助下将其导出为* .jar文件。

最后将* .jar添加到您的项目中。那就是它。

答案 2 :(得分:1)

添加 Maven 工件对我有用

<dependency>
    <groupId>net.sf.jasperreports</groupId>
    <artifactId>jasperreports-fonts</artifactId>
    <version>6.16.0</version>
</dependency>