Java JasperReports在pdf导出中缺少文本

Java JasperReports在pdf导出中缺少文本,java,jasper-reports,export-to-pdf,Java,Jasper Reports,Export To Pdf,我和JasperReports合作了几个星期。我正在导出HTML、DOCX和PDF格式的报告 DOCX和HTML报告看起来不错,但在PDF中,textElement中的文本有时会被截断 也许有人能帮我 下面是此textElement的jrxml代码: <detail> <band height="29" splitType="Stretch"> <property name="com.jaspersoft.studio.layout" va

我和JasperReports合作了几个星期。我正在导出HTML、DOCX和PDF格式的报告

DOCX和HTML报告看起来不错,但在PDF中,textElement中的文本有时会被截断

也许有人能帮我

下面是此textElement的jrxml代码:

<detail>
    <band height="29" splitType="Stretch">
        <property name="com.jaspersoft.studio.layout" value="com.jaspersoft.studio.editor.layout.FreeLayout"/>
        <textField isStretchWithOverflow="true" isBlankWhenNull="true">
            <reportElement positionType="Float" stretchType="RelativeToTallestObject" x="260" y="0" width="284" height="29" isRemoveLineWhenBlank="true" isPrintWhenDetailOverflows="true" uuid="602856c9-7bf6-481d-a9f9-449498ff5168">
                <property name="net.sf.jasperreports.print.keep.full.text" value="true"/>
            </reportElement>
            <textElement>
                <font fontName="Arial" size="10" isBold="true"/>
                <paragraph lineSpacing="Single" spacingBefore="3" spacingAfter="3"/>
            </textElement>
            <textFieldExpression><![CDATA[$F{TEXT}]]></textFieldExpression>
        </textField>
        <textField isStretchWithOverflow="true" isBlankWhenNull="true">
            <reportElement positionType="Float" stretchType="RelativeToTallestObject" x="110" y="0" width="140" height="18" isRemoveLineWhenBlank="true" uuid="4c12bb30-f160-42ba-a6a1-60f0f9832732">
                <property name="com.jaspersoft.studio.unit.y" value="pixel"/>
            </reportElement>
            <textElement>
                <font fontName="Arial" size="10" isBold="false"/>
                <paragraph spacingBefore="3" spacingAfter="3"/>
            </textElement>
            <textFieldExpression><![CDATA[$F{NAME}]]></textFieldExpression>
        </textField>
        <textField isStretchWithOverflow="true" isBlankWhenNull="true">
            <reportElement positionType="Float" stretchType="RelativeToTallestObject" x="60" y="0" width="50" height="18" isRemoveLineWhenBlank="true" uuid="f3242a8a-555e-451a-84c6-9cb1e9e5654b">
                <property name="com.jaspersoft.studio.unit.x" value="pixel"/>
                <property name="com.jaspersoft.studio.unit.y" value="pixel"/>
            </reportElement>
            <textElement>
                <font fontName="Arial" size="10" isBold="false"/>
                <paragraph spacingBefore="3" spacingAfter="3"/>
            </textElement>
            <textFieldExpression><![CDATA["[".concat(String.format("%03d", $F{BT})).concat("]")]]></textFieldExpression>
        </textField>
    </band>
</detail>
财产

net.sf.jasperreports.export.pdf.force.linebreak.policy=true
对我的pdf文件没有影响

这里是我创建PDF的java类的代码(注意,这不是完整的代码):

JasperPrint JasperPrint=新的JasperPrint();
这是.getDataForReport();
JResultSetDataSource rsDataSource=新的JResultSetDataSource(this.resultSetReport);
JRDataSource jrData=rsDataSource;
HashMap param=新的HashMap();
JasperReport jasperReportMain=JasperCompileManager.compileReport(报告配置
.getTemplatePath()+“report.jrxml”);
jasperPrint=JasperFillManager.fillReport(jasperReportMain、param、jrData);
JRPdfExporter exporterPDF=新的JRPdfExporter();
exporterPDF.setExporterInput(新的SimpleExporterInput(jasperPrint));
文件exportReportFilePdf=新文件(fileNamePdf);
exporterPDF.setExporterOutput(新的SimpleOutputStreamExportRoutPut(exportReportFilePdf));
exporterPDF.exportReport();

我正在使用jasperreport-6.2.2和commons-beanutils-1.8.2、commons-collections-3.2.1、commons-digester-2.1、commons-logging-1.1、groovy-all-2.0.1、itext-2.1.7.js4-20150903.153643-1、jasperreports-fonts-6.2.2、jasperreports-functions-6.2.2.2.2、jasperreports-javaflow-6.2.2、jdt-compiler-3.1.1.1、Jfreeda-12.1、Jda-1.2.1.1、,poi-3.7-20101029
PDF有时textElement中的文本会被截断
-您可以发布图像吗?“有时”是什么意思?不幸的是,我不能发布报告的图片。但是textElement文本中文本的长度是动态的。例如:DOCX中的长度为80(与源代码中的长度相同),而PDF中的长度仅为65。使用“有时”时,我发现我找不到任何模式(可能文本被截断是因为某些特殊字符或类似的东西,但事实并非如此)当我将textElement的高度设置得更大时,文本不会被截断(但我不知道textElement的最大高度)。但这不可能是解决方案…textElement(垂直)之间的空间会产生干扰,举个例子。我希望这一帮助我使用的是jasperreport-6.2.2和commons-beanutils-1.8.2、commons-collections-3.2.1、commons-digester-2.1、commons-logging-1.1、groovy-all-2.0.1、itext-2.1.7.js4-20150903.153643-1、jasperreports-fonts-6.2.2、jasperreports-functions-6.2.2.2.2、jasperreports-javaflow-6.2.2.2、jdt-compiler-3.1.1.1、Jfreeda-1.1.2.1.1.1.2.1、,poi-3.7-20101029
PDF有时textElement中的文本会被截断
-您可以发布图像吗?“有时”是什么意思?不幸的是,我不能发布报告的图片。但是textElement文本中文本的长度是动态的。例如:DOCX中的长度为80(与源代码中的长度相同),而PDF中的长度仅为65。使用“有时”时,我发现我找不到任何模式(可能文本被截断是因为某些特殊字符或类似的东西,但事实并非如此)当我将textElement的高度设置得更大时,文本不会被截断(但我不知道textElement的最大高度)。但这不可能是解决方案…textElement(垂直)之间的空间会产生干扰,举个例子。我希望这有帮助
net.sf.jasperreports.export.pdf.force.linebreak.policy=true
JasperPrint jasperPrint = new JasperPrint();

this.getDataForReport();

JRResultSetDataSource rsDataSource = new JRResultSetDataSource(this.resultSetReport);

JRDataSource jrData = rsDataSource;

HashMap<String, Object> param = new HashMap<String, Object>();

JasperReport jasperReportMain = JasperCompileManager.compileReport(ReportsConfiguration
        .getTemplatePath() + "report.jrxml");

jasperPrint = JasperFillManager.fillReport(jasperReportMain, param, jrData);

JRPdfExporter exporterPDF = new JRPdfExporter();

exporterPDF.setExporterInput(new SimpleExporterInput(jasperPrint));
File exportReportFilePdf = new File(fileNamePdf);
exporterPDF.setExporterOutput(new SimpleOutputStreamExporterOutput(exportReportFilePdf));
exporterPDF.exportReport();