Here is the method I use to create a PDF from Jasper reports, one think
that might be missing is the call to responseComplete().

   private void exportPdfReport(InputStream reportInputStream, String
filename)
   {
      try
      {
         Map parameters = createParams();
         Connection connection = getCurrentConnection();
         JasperPrint jasperPrint =
JasperFillManager.fillReport(reportInputStream, parameters, connection);
         FacesContext context = FacesContext.getCurrentInstance();
         HttpServletResponse response = (HttpServletResponse)
context.getExternalContext().getResponse();
         response.setContentType("application/pdf");
         response.setHeader("Content-disposition", "Attachment; filename="
+ filename + ".pdf");
         OutputStream outputStream = response.getOutputStream();
         JRPdfExporter exporterPdf = new JRPdfExporter();
         exporterPdf.setParameter(JRPdfExporterParameter.JASPER_PRINT,
jasperPrint);
         exporterPdf.setParameter(JRPdfExporterParameter.OUTPUT_STREAM,
outputStream);
         exporterPdf.exportReport();
         connection.close();
         context.responseComplete();
      }

Hope this helps

Rob



"daniel ccss" <[EMAIL PROTECTED]> wrote on 01/02/2008 01:31:21 PM:

> Hi all, I`m using JSF and JasperReports
>
> All works fine, i mean no error is launch, but when the pdf was
> generated and I opened it with Adobe I couldn`t open it. Then I
> opened it with textpad and I saw that the pdf have the code of the
jsp!!!!
>
> This is my code (cuposAsignados is the arrayListthat contains the
> objects that will be showing in the pdf report, and the class
> CuposAsignadosJasper is the class that implements JRDataSource, in
> this case the report no recived parameters) :
>
>
****************************************************************************************
> This is the Backing Bean Class that create the report:
>
> FacesContext facesContext = FacesContext.getCurrentInstance();
> ServletContext servletContext = (ServletContext) facesContext.
> getExternalContext().getContext();
> File reportFile = new File(servletContext.
> getRealPath("/reportes/cuposAsignados.jasper"));
> InputStream reporte = new FileInputStream(reportFile);
> CuposAsignadosJasper cuposAsignadosJasper =  new CuposAsignadosJasper
> (cuposAsignados);
> HashMap param = new HashMap();
> JasperPrint jp = JasperFillManager.fillReport(reporte, param,
> cuposAsignadosJasper);
> byte[] bytes = JasperExportManager.exportReportToPdf(jp);
>
> HttpServletResponse response = (HttpServletResponse) facesContext.
> getExternalContext().getResponse();
> response.setContentType("application/pdf");
> response.setHeader("Content-disposition", "attachment;
> filename=\"cuposAsignados.pdf\"");
> ServletOutputStream ouputStream = response.getOutputStream();
> ouputStream.write(bytes, 0, bytes.length);
> ouputStream.close();
>
>
****************************************************************************************
> This is the class CuposAsignadosJasper
>
> public class CuposAsignadosJasper implements JRDataSource{
>     private Iterator iterator;
>     private Cupo cupo;
>
>    public Object getFieldValue(JRField arg0) throws JRException {
>         if ("conCupo".equals(arg0.getName()))
>             return String.valueOf(cupo.getConCupo());
>         else if ("fecCupo".equals(arg0.getName()))
>             return cupo.getFecCupo().toUpperCase();
>         else if ("horaCompleta".equals(arg0.getName()))
>             return cupo.getHoraCompleta().toUpperCase();
>         return 0;
>     }
>     public boolean next() throws JRException {
>         if (iterator.hasNext()) {
>             cupo = (Cupo)iterator.next();
>             return true;
>         } else
>             return false;
>     }
>     public CuposAsignadosJasper(ArrayList<Cupo> cuposAsignados) {
>         iterator = cuposAsignados.listIterator();
>     }
> }
>
****************************************************************************************
>
> All works fine but what the generated pdf have is the JSP code that
> create it, is very strange, can anyone help me??

Reply via email to