在SO中有关于此主题的一些相关问题,但没有解决方案(最接近的here)
我有一个长文本作为jasper报告中文本字段的输入,如果分页文本有粗体文本,则页面中断部分文本会被截断。如果拆分文本只是简单的,它可以正常工作。
如果输入文本具有粗体html标记,那么 JasperReports 引擎似乎无法计算页面中的最大字符数,然后它会在导出为PDF时删除剩余的单词。我正在使用 JasperReports 6.2.0
这是源代码:
<band height="40" splitType="Stretch">
<textField isStretchWithOverflow="true" isBlankWhenNull="true">
<reportElement positionType="Float" stretchType="RelativeToBandHeight" x="30" y="10" width="510" height="20" isPrintWhenDetailOverflows="true">
<property name="local_mesure_unity" value="pixel"/>
<property name="com.jaspersoft.studio.unit.y" value="px"/>
<property name="local_mesure_unitx" value="pixel"/>
<property name="com.jaspersoft.studio.unit.x" value="px"/>
<property name="local_mesure_unitwidth" value="pixel"/>
<property name="com.jaspersoft.studio.unit.width" value="px"/>
<property name="local_mesure_unitheight" value="pixel"/>
<printWhenExpression><![CDATA[$P{myInputData} != null]]></printWhenExpression>
</reportElement>
<textElement textAlignment="Justified" markup="html">
<font fontName="ArialExtendedJasper"/>
</textElement>
<textFieldExpression><![CDATA[$P{myInputData}]]></textFieldExpression>
</textField>
</band>
修改: 添加了字体扩展属性
<?xml version="1.0" encoding="UTF-8"?>
<fontFamilies>
<fontFamily name="ArialExtendedJasper">
<normal>fonts/ArialExtendedJasper/arial.ttf</normal>
<bold>fonts/ArialExtendedJasper/arialbd.ttf</bold>
<italic>fonts/ArialExtendedJasper/ariali.ttf</italic>
<boldItalic>fonts/ArialExtendedJasper/arialbi.ttf</boldItalic>
<pdfEncoding>Identity-H</pdfEncoding>
<pdfEmbedded>true</pdfEmbedded>
<exportFonts>
</exportFonts>
</fontFamily>
</fontFamilies>
答案 0 :(得分:0)
亚历克斯和彼得是对的,这是一个字体扩展问题,我更改了字体(源.ttf文件),这个问题没有再次发生。
我从互联网上下载了arial字体,却不知道这个字体是否已获得许可,而且您发现的字体不可靠。
现在我正在使用Google Fonts,它们是免费的并且完美无缺!