【问题标题】:Jasperreports creates one empty page from JDBCJasperreports 从 JDBC 创建一个空页面
【发布时间】:2017-10-24 12:58:24
【问题描述】:

我有一个这样的模板:

<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Jaspersoft Studio version 6.4.3.final using JasperReports Library version 6.4.3  -->
<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="Invoice" pageWidth="595" pageHeight="842" columnWidth="535" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="4eedbb89-b4f6-4469-9ab6-f642a1688cf7">
    <property name="com.jaspersoft.studio.data.sql.tables" value=""/>
    <property name="com.jaspersoft.studio.data.defaultdataadapter" value="localdb"/>
    <style name="Title" forecolor="#FFFFFF" fontName="Times New Roman" fontSize="50" isBold="false" pdfFontName="Times-Bold"/>
    <style name="SubTitle" forecolor="#CCCCCC" fontName="Times New Roman" fontSize="18" isBold="false" pdfFontName="Times-Roman"/>
    <style name="Column header" forecolor="#666666" fontName="Times New Roman" fontSize="14" isBold="true"/>
    <style name="Detail" mode="Transparent" fontName="Times New Roman"/>
    <style name="Row" mode="Transparent" fontName="Times New Roman" pdfFontName="Times-Roman">
        <conditionalStyle>
            <conditionExpression><![CDATA[$V{REPORT_COUNT}%2 == 0]]></conditionExpression>
            <style mode="Opaque" backcolor="#EEEFF0"/>
        </conditionalStyle>
    </style>
       .....
    <queryString language="SQL">
        <![CDATA[SELECT * from test]]>
    </queryString>

这个生成代码:

@Autowired
private DataSource datasource;

@RequestMapping(value = "invoice", produces = MediaType.APPLICATION_PDF_VALUE)
public ResponseEntity createInvoice() throws JRException, SQLException, IOException {
    InputStream resourceAsStream = PDFReporter.class.getResourceAsStream(BILL_JRXML);
    assert resourceAsStream != null : "No " + BILL_JRXML + " found!";
    JasperReport r = JasperCompileManager.compileReport(resourceAsStream);
    Map<String, Object> parameters = new HashMap();
    Connection connection = datasource.getConnection();
    JasperPrint print = JasperFillManager.fillReport(r, parameters, connection);
    JRPdfExporter exporter = new JRPdfExporter();
    exporter.setExporterInput(new SimpleExporterInput(print));
    ByteArrayOutputStream bos = new ByteArrayOutputStream();
    exporter.setExporterOutput(new SimpleOutputStreamExporterOutput(bos));
    exporter.exportReport();
    connection.close();
    return new ResponseEntity(bos.toByteArray(), HttpStatus.OK);
}

但结果是只有一页空白的 PDF。

我下载 PDF 并检查错误,但 PDF 具有导入 %PDF-1.4 和导出 %%EOF

如果我在 Jaspersoft Studio 中进行操作,效果会很好。

怎么了?

【问题讨论】:

  • 看起来连接错误(错误的数据库)或者您使用的是另一个模板(与使用 Studio 检查不同)

标签: java pdf jasper-reports


【解决方案1】:

哦,表test 是空的。我从没想过会有一个空白页面!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-27
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 2017-06-24
    • 1970-01-01
    相关资源
    最近更新 更多