我正在使用 Jaspersoft Studio 5.2 ,我使用 Courier New 字体进行了报告,当我将其导出为PDF时,它将字体更改为 Arial字体
我只使用 Studio 工具。当我预览报告是可以的,但是当我导出时,它就会发生。
如何使用 Courier New 字体导出我的报告?
我在报告中使用的textField模型:
<textField pattern="dd/MM/yyyy HH:mm:ss">
<reportElement uuid="f50b279a-b480-498f-8af7-be7e23c4b80b" x="415" y="11" width="105" height="10"/>
<textElement>
<font fontName="Courier New" size="8"/>
</textElement>
<textFieldExpression><![CDATA[new java.util.Date()]]></textFieldExpression>
</textField>
答案 0 :(得分:20)
您应该使用字体扩展机制。
您应该使用 Window - &gt;创建一个新字体首选项对话框:
使用字体系列对话框,您可以为您的字体设置 ttf 文件:
您应该在上下文菜单的帮助下创建一个新样式:
之后,您可以为此样式设置 font :
之后你可以使用这种新风格:
jrxml 文件:
<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Jaspersoft Studio version last-->
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="test_courier" language="groovy" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="2010b76c-0fe5-4a27-9c86-6846a6f9cc6a">
<property name="com.jaspersoft.studio.data.defaultdataadapter" value="Sample DB"/>
<style name="CustomFont" fontName="Courier New"/>
<queryString>
<![CDATA[select task from tasks]]>
</queryString>
<field name="TASK" class="java.lang.String"/>
<title>
<band height="79" splitType="Stretch">
<staticText>
<reportElement uuid="9205f787-f3b4-4b21-b2d9-19f52824e187" style="CustomFont" x="280" y="36" width="70" height="20"/>
<textElement/>
<text><![CDATA[Title]]></text>
</staticText>
</band>
</title>
<detail>
<band height="20" splitType="Stretch">
<textField>
<reportElement uuid="f23e8674-c45d-4dc7-92f3-93e5d0b41c16" style="CustomFont" x="0" y="0" width="70" height="20"/>
<textElement/>
<textFieldExpression><![CDATA[$F{TASK}]]></textFieldExpression>
</textField>
</band>
</detail>
</jasperReport>
Studio 中的报告设计:
结果将是( pdf 文件由 Jaspersoft Studion 生成并在 Adobe Reader 中打开):
注意:
您可以找到有关Font Extensions here
的更多信息答案 1 :(得分:3)
如果没有为任何字体正确呈现报告,则系统中的iReport / JasperStudio和jasper lib可能存在一些兼容性问题。尝试使用jasper文件将报表导出为pdf时遇到此问题。解决方案是在我的代码中编译报告,如下所示:
InputStream reportStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("/reports.jrxml"); JasperReport report = JasperCompileManager.compileReport(reportStream); jasperPrint = JasperFillManager.fillReport(report, parameters, dataSource);
答案 2 :(得分:2)
同样的问题发生在我身上。我尝试了以下方法来找到解决方案 -
如果您希望在Jasper Report
PDF文件查看器中嵌入字体,并且字体列表中没有该字体,您只需:
Window -> Preferences -> Jaspersoft Studio -> Fonts
。您会看到一个包含添加.ttf文件字体的框。 Embed this font to PDF
。之后,您将在字体列表中看到您的字体,其中包含您之前提供的名称。 就是这样。 谢谢。
答案 3 :(得分:0)
我遇到了类似的问题,并通过将所需的字体ttf文件添加到jar或现有的jasperreport-fonts.jar并将其依赖项添加到应用程序中来解决了该问题。
答案 4 :(得分:0)
同样的事情发生在我身上,我按照这里的说明做了所有配置,还是不行,还是没有考虑到jasperreports源jasperreports_extension.properties
的配置文件。
在我的项目中,我使用 Maven 来管理 Java 库,并且在组装过程中,它抛出了以下消息:
jasperreports_extension.properties already added, skipping
因此,我将源扩展文件放在第一个依赖项中,甚至在 jasperreports 之前。
然后我生成了 Maven 项目并且字体工作了,因为 jasperreports_extension.properties 被优先考虑。