当前位置: 首页 > 教程 > JasperReports >

JasperReports 查看打印报表

精华
小牛编辑
150浏览
2023-03-14

1 查看JasperReports JRPrint文件

上一章:《JasperReports 填充报表》,我们已经通过JasperReports生成了.jrprint报表文件,接下来我们可以编写预览程序来预览.jrpirnt文件的效果。

package cn.xnip;

import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.view.JasperViewer;

public class JasperReportFill {

   public static void main(String[] args) {
      String filePath = "D:/jasper_report_template.jrprint";
      try {
         JasperViewer.viewReport(filePath,false);
      } catch (JRException e) {
         e.printStackTrace();
      }
   }
}

输出结果如下:

2 打印JasperReports的报表

我们可以使用net.sf.jasperreports.engine.JasperPrintManager 类打印由 JasperReports 库生成的文档(以其专有格式,即JasperPrint对象)。这是一个依赖 Java 2 打印 API 的外观类。我们还可以在 JasperReport 文档导出为其他格式(例如 HTML 或 PDF)后生成文档。

以下代码演示了报表的打印。让我们更新我们现有的类 JasperReportFill。我们将使用JasperPrintManager.printReport()方法。此方法采用源文件名(这里我们传递.jrprint文件,我们在上一步中使用 JasperFillManager.fillReportToFile() 方法生成该文件)作为第一个参数。第二个参数是用于显示标准打印对话框的布尔值(我们在此处将其设置为true)。

package cn.xnip;

import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrintManager;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
import net.sf.jasperreports.view.JasperViewer;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

public class JasperReportFill {

   public static void main(String[] args) {
      String sourceFileName = "d:/jasper_report_template.jasper";
      String printFileName = null;
      DataBeanList DataBeanList = new DataBeanList();
      ArrayList<DataBean> dataList = DataBeanList.getDataBeanList();

      JRBeanCollectionDataSource beanColDataSource = new
              JRBeanCollectionDataSource(dataList);

      Map parameters = new HashMap();
      try {
         printFileName = JasperFillManager.fillReportToFile(
                 sourceFileName, parameters, beanColDataSource);
         if(printFileName != null){
            JasperPrintManager.printReport( printFileName, true);
         }
      } catch (JRException e) {
         e.printStackTrace();
      }
   }
}

输出结果为: