Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Jasper创建空PDF_Java_Jasper Reports - Fatal编程技术网

Java Jasper创建空PDF

Java Jasper创建空PDF,java,jasper-reports,Java,Jasper Reports,我开始与贾斯珀图书馆合作。如果我试图编译我的项目,jasper会生成一个空PDF。通常,这个主函数应该生成一个带有文本“hello”的pdf文件。有人能帮我吗 Main.java public class Main { public static void main(String[] args) throws Throwable { JasperReport jasperReport; JasperPrint jasperPrint; Map<String, O

我开始与贾斯珀图书馆合作。如果我试图编译我的项目,jasper会生成一个空PDF。通常,这个主函数应该生成一个带有文本“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> 

报告的详细信息栏将对数据源中的每一行重复。无论您如何使用空数据源填充报告,这就是为什么不显示波段。尝试移动标题栏中的文本字段以查看它。

报告的详细信息栏将对数据源中的每一行重复。无论您如何使用空数据源填充报告,这就是为什么不显示波段。尝试移动标题栏中的文本字段以查看它。

据我记忆所及,Jasper仅在有报表数据源可用时才打印详细信息部分

尝试使用例如标题部分

此外,Jasper具有无数据行为。我使用的过时版本提供了方法SetWhenNodeType,其中包含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

据我记忆所及,Jasper仅在有可用的报表数据源时才打印详细信息部分

尝试使用例如标题部分

此外,Jasper具有无数据行为。我使用的过时版本提供了方法SetWhenNodeType,其中包含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

可能无法打印标题栏上的值或指定空数据源

可能无法打印标题栏上的值或指定空数据源

我尝试了标题部分,我已经将细节更改为标题,但是pdf文件仍然是空的,你能给我一个简短的例子吗?好的,这是解决方案:我需要将标签更改为look at Guillaume post。之后,我必须在java类中更改此代码行。查看淘宝帖子来源:jasperPrint=JasperFillManager.fillReportjasperReport,参数;into:jasperPrint=JasperFillManager.fillreportjaspereport,参数,新JREmptyDataSource;谢谢:我尝试了标题部分,我已经将细节更改为标题,但是pdf文件仍然是空的,你能给我一个简短的例子吗?好的,这是解决方案:我需要将标签更改为look at Guillaume post。之后,我必须在java类中更改此代码行。查看淘宝帖子来源:jasperPrint=JasperFillManager.fillReportjasperReport,参数;into:jasperPrint=JasperFillManager.fillreportjaspereport,参数,新JREmptyDataSource;谢谢:您没有传递任何数据源或连接。您没有传递任何数据源或连接。