JasperReports - 文本文件在每页末尾包含2个换行符

时间:2017-04-07 15:57:46

标签: java jasper-reports

我是JasperReports的新手,我正在努力解决这个问题。我已经搜索了这个问题的答案,但没有找到任何运气(大多数看似相关的评论与XLS导出和缺失数据有关)。  对于此示例,我删除了除细节之外的所有部分(当包含页面/列标题等时,我仍然遇到相同的问题)。页面正确的行数(此设置中为66行/页),但每次分页后有2个额外的换行符。它们不是“空行”,因为它们被填充到页面宽度(133列~1030像素,10宽度),这些只是额外的x'0D0A',我无法摆脱它们。

这是JRXML:

<?xml version="1.0" encoding="UTF-8"?>
<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="TextReport" whenNoDataType="AllSectionsNoDetail" pageWidth="1330" pageHeight="792" leftMargin="0" rightMargin="0" topMargin="0" bottomMargin="0">
    <property name="ireport.scriptlethandling" value="0"/>
    <property name="net.sf.jasperreports.export.text.character.width" value="10"/>
    <property name="net.sf.jasperreports.export.text.character.height" value="12"/>
    <style name="FixSizeFontStyle" isDefault="true" fontName="DejaVu Sans Mono" fontSize="10"/>
    <parameter name="QueryString" class="java.lang.String"/>
    <queryString>
        <![CDATA[$P!{QueryString}]]>
    </queryString>
    <field name="PRSN_ID" class="java.math.BigDecimal"/>
    <detail>
        <band height="12">
            <textField>
                <reportElement x="25" y="0" width="100" height="12"/>
                <textFieldExpression><![CDATA[$F{PRSN_ID}]]></textFieldExpression>
            </textField>
        </band>
    </detail>
</jasperReport>

以下是我如何运行它(实际查询混淆):

Map<String, Object> jaspParms = new HashMap<String, Object>();
jaspParms.put("QueryString", "SELECT * FROM table where col > value");
JasperReport jaspReport = JasperCompileManager.compileReport(pathJRXML);
JasperPrint jaspPrint = JasperFillManager.fillReport(jaspReport, jaspParms, conDB);
JRTextExporter jaspTextExport = new JRTextExporter();
jaspTextExport.setExporterInput(new SimpleExporterInput(jaspPrint));
jaspTextExport.setExporterOutput(new SimpleWriterExporterOutput(pathText));
jaspTextExport.exportReport();

这是页面的结尾,请注意填充的空格 - 这是第66行并且是预期的:

Here

请让我知道我做错了什么。

1 个答案:

答案 0 :(得分:0)

将此属性写入您的源文件(jrxml文件)

<property name="net.sf.jasperreports.export.text.page.separator" value=""/>