在Web报表中如何按图片格式分页导出PDF文件
在Web报表项目中,用户在浏览报表时,常常需要将报表导出为PDF格式的文件,但是在导出PDF时,常常发生pdf不分页的情况,这时导出的pdf文件往往过大。
针对这个问题,提供一种基于快逸报表的解决方案,快逸报表是一个纯Java开发的强大的Web报表工具软件,开发人员可以很方便地基于快逸在网页上到处PDF文件。
问题描述:
客户在通过快逸报表api导出pdf文件的时候,有时候会出现pdf文件不分页的情况,有时候导出pdf的文件过大,而且是文本方式的导出。
解决方法:
要解决这个问题,可以在快逸报表api中设置导出pdf时的分页方式和图片格式。具体代码如下
import java.io.FileOutputStream;import java.io.OutputStream;
import com.runqian.report4.model.ReportDefine;import com.runqian.report4.model.engine.ExtCellSet;import com.runqian.report4.usermodel.Context;import com.runqian.report4.usermodel.Engine;import com.runqian.report4.usermodel.IReport;import com.runqian.report4.util.ReportUtils;
public class ExportToPdf {
public static void main(String[] args) {
try{ String report = "D:/toExcel.raq"; //报表模板位置 String pdfPath= "D:/test.pdf"; String licenceFile = "D:/2009-12-31V4.0Windows.lic"; //授权文件位置
//读取报表模板 ReportDefine rd = (ReportDefine) ReportUtils.read( report ); //第二步,设置报表授权文件,运算报表 ExtCellSet.setLicenseFileName( licenceFile ); Context context = new Context(); Engine enging = new Engine( rd, context); IReport iReport = enging.calc();
ReportUtils.exportToPDF(pdfPath,iReport,true,true);
}catch(Exception e){ e.printStackTrace(); }catch(Throwable t){ t.printStackTrace(); }
}
}
其中导出pdf的方法:exportToPDF(pdfPath,iReport,true,true)中的参数解释如下:
第一个是pdf文件的路径;第二个是本报表的对象;第三个是PDF文件的分页方式(true为分页,false为不分页);第四个是导出的PDF为图片格式还是文本格式(true为图片,false为文本)。 这样在Web报表中导出PDF的问题就可以得到完美的解决。