在使用 Jasper Reports 的 Linux 部署中将报告导出为 pdf 时静态文本被截断

Static text cutting off while exporting reports to pdf in Linux Deployments using Jasper Reports

我们在 Linux 部署中将报告导出为 pdf 时进行了静态文本剪切。这些值似乎正确显示,只是静态文本被截断了。以下是 Windows 和 Linux 部署中报告 pdf 的屏幕截图。

非常感谢任何帮助或意见。

关于 Linux 地区的报告 Screenshot from Linux for report

在Windows中报告 Screenshot from Windows for report

<style name="Base" isDefault="true" fontSize="8"  pdfFontName="Helvetica" pdfEncoding="Cp1252" isPdfEmbedded="true"/>

状态字段代码

 <staticText>
      <reportElement positionType="Float" x="0" y="11" width="29" height="11" forecolor="#000000" uuid="33ebd0e4-a138-4a26-943e-a7c1b23fd5ed"/>
      <textElement>
           <font isBold="true"/>
                    </textElement>
                    <text><![CDATA[Status: ]]></text>
                </staticText>
                <textField>
                    <reportElement x="29" y="11" width="140" height="11" forecolor="#000000" uuid="465caf4d-66e7-412f-81f3-02349696cfc0"/>
                    <textFieldExpression><![CDATA[$P{claimStatus}]]></textFieldExpression>
                </textField>

损失说明

<frame>
                <reportElement positionType="Float" x="0" y="33" width="473" height="11" isRemoveLineWhenBlank="true" forecolor="#000000" uuid="2fc22d18-89c7-4b7c-a583-ca4f7acd2344">
                    <printWhenExpression><![CDATA[$P{lossDescription} != null && $P{lossDescription}.length() > 0]]></printWhenExpression>
                </reportElement>                
                <staticText>                
                    <reportElement positionType="Float" x="0" y="0" width="69" height="11" isRemoveLineWhenBlank="true" forecolor="#000000" uuid="70d296f8-0869-4ecf-bf57-a6bdc50366de" backcolor="blue">
                        <printWhenExpression><![CDATA[$P{lossDescription} != null && $P{lossDescription}.length() > 0]]></printWhenExpression>
                    </reportElement>
                    
                    <textElement>                        
                        <font isBold="true"/>
                    </textElement>
                    <text><![CDATA[Loss Description: ]]></text>
                </staticText>
                <textField isStretchWithOverflow="true" isBlankWhenNull="true">
                    <reportElement positionType="Float" x="69" y="0" width="368" height="11" isRemoveLineWhenBlank="true" forecolor="#000000" uuid="7318184a-2d1a-4c75-aaf7-e5c2609e7d92">
                        <printWhenExpression><![CDATA[$P{lossDescription} != null && $P{lossDescription}.length() > 0]]></printWhenExpression>
                    </reportElement>                   
                    <textFieldExpression><![CDATA[$P{lossDescription}]]></textFieldExpression>
                </textField>
            </frame>

为了解决它,我们在 jasper-font jar 中包含了 Arial 字体,并在报告中将字体从 Helvetica 更改为 Arial。

完成后,报告开始在 Linux 和 Windows 区域正常呈现,因为 Arial 字体 TTF 文件是 war 到 jasper-font jar 的一部分。