1

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

主.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> 
4

3 回答 3

2

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

于 2013-07-23T08:31:02.450 回答
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
于 2013-07-23T08:33:22.380 回答
0

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

于 2013-07-23T08:37:54.690 回答