Discussions
Categories
Groups
Community Home
Categories
INTERNAL ENABLEMENT
POPULAR
PUBLIC CLOUD
PRIVATE CLOUD
Quick Links
MY LINKS
HELPFUL TIPS
Back to website
Home
Intelligence (Analytics)
Change filename of generated PDF
kszyhooo
<p><span style="font-size:12px;">Hello,</span></p>
<p> </p>
<p><span style="font-size:12px;">It is possible to change filename of generated PDF?</span></p>
<p> </p>
<p><span style="font-size:12px;">For example i have report which show 'product_line' from 'classic models db' filtered by input parameter and i want to get PDF with filename 'Motorcycles.PDF'.</span></p>
<p> </p>
<div><span style="font-size:12px;">Right now i'm generating PDF by adding '&__format=pdf' to URL via javascript. </span></div>
<div> </div>
<div> </div>
<div><span style="font-size:12px;">P.S. </span></div>
<div><span style="font-size:12px;">I don't want to change anything in BIRT itself, because this must be enviroment independent.</span></div>
Find more posts tagged with
Comments
kszyhooo
<p>No replies? Anyone?</p>
<p> </p>
<p> </p>
<div>I searched again forum and found some example report, but i got error.</div>
<div> </div>
<div>There are two script:</div>
<div> </div>
<div>-beforeFactory:</div>
<div> </div>
<div><em>mmap = reportContext.getHttpServletRequest().getAttribute("attributeBean").getModuleOptions();</em></div>
<div> </div>
<div> </div>
<div> </div>
<div>-beforeRender:</div>
<div> </div>
<div><em>mmap = reportContext.getHttpServletRequest().getAttribute("attributeBean").getModuleOptions();</em></div>
<div><em>rptdoc = reportContext.getHttpServletRequest().getAttribute("attributeBean").getReportDocumentName();</em></div>
<div> </div>
<div><em>importPackage(Packages.org.eclipse.birt.report.engine.api);</em></div>
<div><em>importPackage(Packages.java.io)</em></div>
<div><em>var re = reportContext.getReportRunnable().getReportEngine();</em></div>
<div><em>var mdocument = re.openReportDocument(null,rptdoc, mmap); </em></div>
<div><em>var options = new PDFRenderOption();</em></div>
<div><em>baos = new ByteArrayOutputStream();<span> </span></em></div>
<div><em>options.setOutputFormat("pdf");</em></div>
<div><em>options.setOutputStream(baos);</em></div>
<div> </div>
<div><em>var ntask = re.createRenderTask(mdocument); <span> </span></em></div>
<div><em>ntask.setRenderOption(options);</em></div>
<div><em>ntask.render();</em></div>
<div><em>ntask.close();</em></div>
<div><em>mdocument.close();</em></div>
<div> </div>
<div><em>fout = new FileOutputStream("c:/test/myreport.pdf"); </em></div>
<div><em>fout.write(baos.toByteArray());</em></div>
<div><em>fout.flush()</em></div>
<div><em>fout.close(); </em></div>
<div> </div>
<div> </div>
<div>I'm getting error:</div>
<div> </div>
<div><em>There are errors evaluating script "mmap = reportContext.getHttpServletRequest().getAttribute("attributeBean").getModuleOptions()":</em></div>
<div><em>TypeError: Cannot call method "getModuleOptions" of null (/report/method[
@name="
;beforeFactory"]#1)</em></div>
<div> </div>
<div> </div>
<div>This example report worked on BIRT2.3.2. Something changed in 4.4.0?</div>
<div> </div>
<div> </div>
<div>Could anyone help me with this topic?</div>
SergeFloyd01
I would recommend to check
zetpdf.com/
library