1 13 package org.pentaho.plugin.jfreereport.outputs; 14 15 import java.io.OutputStream ; 16 17 import org.jfree.report.JFreeReport; 18 import org.jfree.report.ReportProcessingException; 19 import org.jfree.report.modules.output.pageable.base.OutputTargetException; 20 import org.jfree.report.modules.output.pageable.base.PageableReportProcessor; 21 import org.jfree.report.modules.output.pageable.pdf.PDFOutputTarget; 22 import org.pentaho.plugin.jfreereport.helper.YieldReportListener; 23 24 29 public class JFreeReportPdfComponent extends AbstractGenerateStreamContentComponent { 30 private static final long serialVersionUID = 3209507821690330555L; 31 32 public JFreeReportPdfComponent() { 33 } 34 35 protected String getMimeType() { 36 return "application/pdf"; } 38 39 protected String getExtension() { 40 return ".pdf"; } 42 43 protected boolean performExport(final JFreeReport report, final OutputStream outputStream) { 44 try { 45 PageableReportProcessor processor = new PageableReportProcessor(report); 46 PDFOutputTarget target = new PDFOutputTarget(outputStream); 47 target.configure(report.getReportConfiguration()); 48 processor.setOutputTarget(target); 49 final int yieldRate = getYieldRate(); 50 if (yieldRate > 0) { 51 processor.addRepaginationListener(new YieldReportListener(yieldRate)); 52 } 53 target.open(); 54 processor.processReport(); 55 target.close(); 56 return true; 57 } catch (ReportProcessingException e) { 58 return false; 59 } catch (OutputTargetException e) { 60 return false; 61 } 62 } 63 } 64 | Popular Tags |