【问题标题】:Jasper creates empty PDF [duplicate]Jasper 创建空 PDF [重复]
【发布时间】:2013-07-23 08:22:56
【问题描述】:

我开始使用 jasper 库。如果我尝试编译我的项目,jasper 会生成一个空 PDF。通常,这个 main 函数应该生成一个带有文本“hello”的 pdf 文件。谁能帮帮我?

Main.java

public class Main {

public static void main(String[] args) throws Throwable {

    JasperReport jasperReport;
    JasperPrint jasperPrint;
    Map<String, Object> parameter = new HashMap<String, Object>();

    parameter.put("aParameter", "hello");

    try {
        jasperReport = JasperCompileManager
                .compileReport("C:/Users/Sam/Desktop/helloworld.jrxml");

        jasperPrint = JasperFillManager.fillReport(jasperReport, parameter);
        JasperExportManager.exportReportToPdfFile(jasperPrint,
                "C:/Users/Sam/Desktop/helloworld.pdf");

    } catch (JRException e) {
        e.printStackTrace();
    }
}

helloworld.jrxml

<?xml version="1.0" encoding="UTF-8"  ?>
<!DOCTYPE jasperReport PUBLIC "//JasperReports//DTD Report Design//EN" "http://jasperreports.sourceforge.net/dtds/jasperreport.dtd">
<jasperReport name="Example1">

 <parameter name="aParameter" class="java.lang.String"/>

 <detail>
  <band height="150">
   <textField >
    <reportElement x="100" y="60" width="100" height="50" />      
    <textElement><font size="36"/></textElement>
    <textFieldExpression class="java.lang.String"><![CDATA[$P{aParameter}]]></textFieldExpression>
   </textField>
  </band>
 </detail>

</jasperReport> 

【问题讨论】:

  • 您没有传递任何数据源或连接。

标签: java jasper-reports


【解决方案1】:

报表的详细信息区域将针对数据源中的每一行重复。但是,您使用空数据源填充报告,这就是乐队没有显示的原因。尝试移动 title 带中的文本字段以查看它。

【讨论】:

    【解决方案2】:

    据我所知,Jasper 仅在有可用的报告数据(“DataSource”)时才会打印详细信息部分。

    尝试使用例如标题部分。

    此外,Jasper 具有“无数据行为”。我使用的过时版本提供了方法“setWhenNoDataType”,其中包含 4 个可用作参数的预定义值:

    JasperReport.WHEN_NO_DATA_TYPE_ALL_SECTIONS_NO_DETAIL
    JasperReport.WHEN_NO_DATA_TYPE_NO_PAGES
    JasperReport.WHEN_NO_DATA_TYPE_BLANK_PAGE
    JasperReport.WHEN_NO_DATA_TYPE_NO_DATA_SECTION
    

    【讨论】:

    • 我尝试了标题部分,我已将 detail 更改为 title ,但 pdf 文件仍然是空的,你能给我一个简短的例子吗?
    • 好的,这就是解决方案:我需要将标签 &lt;detail&gt; 更改为 &lt;title&gt; 看看 Guillaume 的帖子。之后,我必须在我的 java 类中更改此代码行。看早淘宝的帖子来自:jasperPrint = JasperFillManager.fillReport(jasperReport, parameter);进入:jasperPrint = JasperFillManager.fillReport(jasperReport,参数,新 JREmptyDataSource());谢谢:D
    【解决方案3】:

    也许您不能在标题栏打印值或指定空数据源。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-08-25
      • 2014-02-28
      • 2012-05-22
      • 2011-11-27
      • 2016-08-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多