在Jaspersoft Studio中,我创建了一个报告,想要以粗体显示标题。如果我使用无衬线字体,则可以正常工作。如果我使用其他字体,在Jaspersoft Studio的预览中显示为粗体,但在Jasper服务器上运行报告时不显示粗体。
请帮忙解决。
添加 Maven 构件对我有用
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports-fonts</artifactId>
<version>6.16.0</version>
</dependency>
net.sf.jasperreports.extension.registry.factory.fonts=net.sf.jasperreports.extensions.SpringExtensionsRegistryFactory
net.sf.jasperreports.extension.fonts.spring.beans.resource=fonts/fonts_def.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文件添加到其中。
只需前往此网站,使用Jasper添加自定义字体到PDF:
有一份图示指南教你如何创建它。只需为您的字体下载一个*.ttf文件(例如:Arial.ttf)
借助Eclipse创建扩展并将其导出为*.jar文件。
最后将*.jar文件添加到您的项目中。就这样。
我找到了一个对我有效的解决方案,也许对你也有帮助。
所以,我在我的项目中使用Jaspersoft Studio来渲染PDF。我使用了一堆文本字段和静态文本。我使用了"Calibri"字体。我发现当我使用Spring Boot服务导出我的PDF时,粗体,斜体和粗斜体属性都丢失了。我发现一些静态文本保留了它们的样式。
我只是打开了我的jrmxl文件的源代码,并发现一些文本字段有:
<textElement markup="styled">
<font fontName="Calibri" size="9"/>
</textElement>
<textElement markup="styled">
<font size="9"/>
</textElement>
<style name="boldItalic" fontName="Calibri" isBold="true" isItalic="true"/>