mythox Posted March 10, 2011 Share Posted March 10, 2011 Hi, i have a EJB site with glassfish 3.1 + JSF for jasperreport 4.0.1. the site has no problem on streaming pdf, but it products blank PDF when printing PDF with runReportToPdfStream, below is the code snippet:EJB public class BookEJB { public void printReport() throws ClassNotFoundException, IOException, JRException { Map parameterMap = new HashMap(); FacesContext ctx = FacesContext.getCurrentInstance(); HttpServletResponse response = (HttpServletResponse) ctx.getExternalContext().getResponse(); InputStream reportStream = ctx.getExternalContext().getResourceAsStream("/reports/test.jasper"); ServletOutputStream servletOutputStream = response.getOutputStream(); servletOutputStream.flush(); response.setContentType("application/pdf"); JasperRunManager.runReportToPdfStream(reportStream, servletOutputStream, parameterMap); servletOutputStream.flush(); servletOutputStream.close(); ctx.responseComplete();}} test.jrxml - a simple report without SQL connection <?xml version="1.0" encoding="UTF-8"?><jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="test" pageWidth="800" pageHeight="1200" columnWidth="555" leftMargin="25" rightMargin="25" topMargin="30" bottomMargin="30"> <property name="ireport.zoom" value="1.0"/> <property name="ireport.x" value="0"/> <property name="ireport.y" value="0"/> <queryString> <![CDATA[]]> </queryString> <pageHeader> <band height="100"> <staticText> <reportElement x="0" y="0" width="285" height="36"/> <textElement> <font size="24" isBold="true"/> </textElement> <text><![CDATA[Report of Testing]]></text> </staticText> </band> </pageHeader> <detail> <band height="200"> <staticText> <reportElement x="0" y="0" width="374" height="48"/> <textElement> <font size="18"/> </textElement> <text><![CDATA[if you don't see this, it didn't work blah blah blah.... ]]></text> </staticText> </band> </detail> <pageFooter> <band height="100"/> </pageFooter></jasperReport> no error log in glassfish when generating this report on JSF, but only blank PDF has been shown. Please help, let me know if you need further info for the analysis. Steven Post Edited by mythox at 03/10/2011 08:31 Link to comment Share on other sites More sharing options...
szaharia Posted March 10, 2011 Share Posted March 10, 2011 Hi,Try to use JasperRunManager.runReportToPdfStream(reportStream, servletOutputStream, parameterMap, new JREmptyDataSource());Hope this helps,sanda Link to comment Share on other sites More sharing options...
mythox Posted March 10, 2011 Author Share Posted March 10, 2011 Hi Sanda, Thanks!! it works perfectly~ problem solved, but wonder what is the reason. Thanks againStevenPost Edited by mythox at 03/10/2011 11:53 Link to comment Share on other sites More sharing options...
szaharia Posted March 10, 2011 Share Posted March 10, 2011 Hi again,By default, when no datasource info is present in a report, JR generates no pages. Another option (which can be set in the report's whenNoDataType attribute) would be to print all report sections, excepting the <detail>.This report contains a detail section, but only with some static data. To ensure this section will be printed too, the simplest way is to provide an empty data source, containing a single empty record.Regards,sandaPost Edited by shertage at 03/10/2011 12:07 Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now