Have you tried passing the OutputStream from the response to the
PdfCopyFields instead of a FileOutputStream?

Rob Stokes

"daniel ccss" <[EMAIL PROTECTED]> wrote on 01/18/2008 09:30:25 AM:

> Anybody?

> On Jan 18, 2008 7:59 AM, daniel ccss <[EMAIL PROTECTED]> wrote:
> Hi all, I have another question
>
> In Struts I do this for join 2 jasperreport pdfs:
>
> PdfReader reader1 = new PdfReader(bytes);
> PdfReader reader2 = new PdfReader(bytes2);
>
> PdfCopyFields copy =
> new PdfCopyFields(new FileOutputStream( context.
> getRealPath("/reportes/Calificación de Derechos por Beneficio
> Familiar - Resolución Nº " +
> beneficioForm.getNumeroResolucionBeneficio() + ".pdf")));
>
> copy.addDocument(reader1);
> copy.addDocument(reader2);
> copy.close();
>
>
> How can I do that with JSF, thanks!!
>
>
>
>

> On Jan 2, 2008 3:36 PM, daniel ccss < [EMAIL PROTECTED] > wrote:
> THANKS!!!
>
> I used the JRPdfExporter and the context.responseComplete(); and all
> works for me :)
>
> Thanks again!!! :)

> On Jan 2, 2008 10:18 PM, Robert Stokes <[EMAIL PROTECTED]> wrote:
> 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