1 13 package org.pentaho.plugin.jfreereport.outputs; 14 15 import java.io.IOException ; 16 import java.io.OutputStream ; 17 18 import org.jfree.report.JFreeReport; 19 import org.jfree.report.ReportProcessingException; 20 import org.jfree.report.modules.output.table.html.HtmlProcessor; 21 import org.jfree.report.modules.output.table.html.ZIPHtmlFilesystem; 22 import org.pentaho.plugin.jfreereport.helper.YieldReportListener; 23 24 29 public class JFreeReportZipHtmlComponent extends AbstractGenerateStreamContentComponent { 30 private static final long serialVersionUID = -3904516365257691828L; 31 32 public JFreeReportZipHtmlComponent() { 33 } 34 35 protected String getMimeType() { 36 return "text/html"; } 38 39 protected String getExtension() { 40 return ".html"; } 42 43 protected boolean performExport(final JFreeReport report, final OutputStream outputStream) { 44 try { 45 String dataDirectory = getInputStringValue(REPORTDIRECTORYHTML_DATADIR); 46 if (dataDirectory == null) { 47 dataDirectory = "data"; } 49 50 HtmlProcessor processor = new HtmlProcessor(report); 51 processor.setFilesystem(new ZIPHtmlFilesystem(outputStream, dataDirectory)); 52 final int yieldRate = getYieldRate(); 53 if (yieldRate > 0) { 54 processor.addRepaginationListener(new YieldReportListener(yieldRate)); 55 } 56 processor.processReport(); 57 outputStream.flush(); 58 return true; 59 } catch (ReportProcessingException e) { 60 return false; 61 } catch (IOException e) { 62 return false; 63 } 64 } 65 } 66 | Popular Tags |