Título: Reportes en pdf con guardado automático Publicado por: marc85 en 6 Abril 2015, 18:01 pm Hola, tengo un gran problema, no puedo hacer que un reporte hecho en ireport se me guarde en PDF en una carpeta especifíca automáticamente (sin que el usuario tenga la necesidad de indicar donde guardar el reporte). Este es el código que uso, gracias de antemano:
String urlreporte = "src/RptDxImagen.jasper"; String destino = "C:\\Reportes\\"+idserv+".pdf"; try { Map parametros = new HashMap(); parametros.put("idserv", codserv); JasperPrint reporte = JasperFillManager.fillReport(urlreporte, parametros, con); JasperExportManager.exportReportToPdfFile( reporte, destino); } catch(Exception e) { System.err.println( "Error iReport: " + e.getMessage() ); Título: Re: Reportes en pdf con guardado automático Publicado por: Usuario Invitado en 6 Abril 2015, 19:24 pm Hola,
1) Si vas a publicar código, colócalo entre etiquetas [ code=java][ /code] (sin los espacios). Intenta: Código
Título: Re: Reportes en pdf con guardado automático Publicado por: marc85 en 6 Abril 2015, 21:02 pm estas son las librería que importé:
Código
Título: Re: Reportes en pdf con guardado automático Publicado por: Usuario Invitado en 6 Abril 2015, 21:07 pm Citar Y me mandó un error en la línea... ¿Qué error? Título: Re: Reportes en pdf con guardado automático Publicado por: marc85 en 6 Abril 2015, 21:12 pm por cierto este es el error que me genera:
Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: com/lowagie/text/DocumentException at Principal_Reportes.btnImagenActionPerformed(Principal_Reportes.java:297) at Principal_Reportes.btnImagenActionPerformed(Principal_Reportes.java:297) at Principal_Reportes.access$000(Principal_Reportes.java:20) at Principal_Reportes$1.actionPerformed(Principal_Reportes.java:133) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252) at java.awt.Component.processMouseEvent(Component.java:6516) at javax.swing.JComponent.processMouseEvent(JComponent.java:3321) at java.awt.Component.processEvent(Component.java:6281) at java.awt.Container.processEvent(Container.java:2229) at java.awt.Component.dispatchEventImpl(Component.java:4872) at java.awt.Container.dispatchEventImpl(Container.java:2287) at java.awt.Component.dispatchEvent(Component.java:4698) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422) at java.awt.Container.dispatchEventImpl(Container.java:2273) at java.awt.Window.dispatchEventImpl(Window.java:2719) at java.awt.Component.dispatchEvent(Component.java:4698) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:740) at java.awt.EventQueue.access$300(EventQueue.java:103) at java.awt.EventQueue$3.run(EventQueue.java:699) at java.awt.EventQueue$3.run(EventQueue.java:697) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87) at java.awt.EventQueue$4.run(EventQueue.java:713) at java.awt.EventQueue$4.run(EventQueue.java:711) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) at java.awt.EventQueue.dispatchEvent(EventQueue.java:710) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138) at java.awt.EventDispatchThread.run(EventDispatchThread.java:91) Caused by: java.lang.ClassNotFoundException: com.lowagie.text.DocumentException at java.net.URLClassLoader$1.run(URLClassLoader.java:366) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoader.java:425) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) at java.lang.ClassLoader.loadClass(ClassLoader.java:358) ... 39 more Título: Re: Reportes en pdf con guardado automático Publicado por: Usuario Invitado en 6 Abril 2015, 21:32 pm Te falta la librería itextpdf. Agrégala a tu class path, recompila y ejecuta.
Título: Re: Reportes en pdf con guardado automático Publicado por: marc85 en 6 Abril 2015, 21:47 pm import java.io.File;
import java.sql.*; import java.text.SimpleDateFormat; import java.util.HashMap; import java.util.Map; import javax.swing.JOptionPane; import net.sf.jasperreports.engine.JRException; import net.sf.jasperreports.engine.JRExporter; import net.sf.jasperreports.engine.JRExporterParameter; import net.sf.jasperreports.engine.JasperExportManager; import net.sf.jasperreports.engine.JasperFillManager; import net.sf.jasperreports.engine.JasperPrint; import net.sf.jasperreports.engine.JasperReport; import net.sf.jasperreports.engine.export.JRPdfExporter; import net.sf.jasperreports.engine.util.JRLoader; import net.sf.jasperreports.view.JasperViewer; import com.itextpdf.text.BaseColor; import com.itextpdf.text.Document; import com.itextpdf.text.DocumentException; import com.itextpdf.text.PageSize; import com.itextpdf.text.Paragraph; import com.itextpdf.text.Rectangle; import com.itextpdf.text.pdf.PdfWriter; estas son todas las librerías que acabo de agregar y me manda el mismo error, disculpa tantas molestias pero me urge Título: Re: Reportes en pdf con guardado automático Publicado por: marc85 en 6 Abril 2015, 22:06 pm Logré que me creara el archivo pdf con estas librerias:
import java.io.File; import java.sql.*; import java.text.SimpleDateFormat; import java.util.HashMap; import java.util.Map; import javax.swing.JOptionPane; import net.sf.jasperreports.engine.JRException; import net.sf.jasperreports.engine.JRExporter; import net.sf.jasperreports.engine.JRExporterParameter; import net.sf.jasperreports.engine.JasperExportManager; import net.sf.jasperreports.engine.JasperFillManager; import net.sf.jasperreports.engine.JasperPrint; import net.sf.jasperreports.engine.JasperReport; import net.sf.jasperreports.engine.export.JRPdfExporter; import net.sf.jasperreports.engine.util.JRLoader; import net.sf.jasperreports.view.JasperViewer; import com.itextpdf.awt.*; import com.itextpdf.text.*; pero no me mostró el contenido del reporte, me mandó este error: Exception in thread "AWT-EventQueue-0" java.lang.NoSuchFieldError: PRINTSCALING at net.sf.jasperreports.engine.export.JRPdfExporter.exportReportToStream(JRPdfExporter.java:532) at net.sf.jasperreports.engine.export.JRPdfExporter.exportReportToStream(JRPdfExporter.java:532) at net.sf.jasperreports.engine.export.JRPdfExporter.exportReport(JRPdfExporter.java:417) at Principal_Reportes.btnImagenActionPerformed(Principal_Reportes.java:308) at Principal_Reportes.access$000(Principal_Reportes.java:29) at Principal_Reportes$1.actionPerformed(Principal_Reportes.java:142) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252) at java.awt.Component.processMouseEvent(Component.java:6516) at javax.swing.JComponent.processMouseEvent(JComponent.java:3321) at java.awt.Component.processEvent(Component.java:6281) at java.awt.Container.processEvent(Container.java:2229) at java.awt.Component.dispatchEventImpl(Component.java:4872) at java.awt.Container.dispatchEventImpl(Container.java:2287) at java.awt.Component.dispatchEvent(Component.java:4698) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422) at java.awt.Container.dispatchEventImpl(Container.java:2273) at java.awt.Window.dispatchEventImpl(Window.java:2719) at java.awt.Component.dispatchEvent(Component.java:4698) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:740) at java.awt.EventQueue.access$300(EventQueue.java:103) at java.awt.EventQueue$3.run(EventQueue.java:699) at java.awt.EventQueue$3.run(EventQueue.java:697) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87) at java.awt.EventQueue$4.run(EventQueue.java:713) at java.awt.EventQueue$4.run(EventQueue.java:711) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) at java.awt.EventQueue.dispatchEvent(EventQueue.java:710) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138) at java.awt.EventDispatchThread.run(EventDispatchThread.java:91) BUILD STOPPED (total time: 4 minutes 24 seconds) Título: Re: Reportes en pdf con guardado automático Publicado por: Usuario Invitado en 6 Abril 2015, 22:27 pm ¿Qué versión de iText estás usando? Prueba con la 2.1.7, porque parece que Jasper es compatible solo con ésta versión.
Título: Re: Reportes en pdf con guardado automático Publicado por: marc85 en 6 Abril 2015, 22:58 pm Intentaré cambiar la versión del itext, aunque estoy usando netbeans 7.4 e iReport 4.7.1, espero no tener problemas
Título: Re: Reportes en pdf con guardado automático Publicado por: marc85 en 6 Abril 2015, 23:19 pm Muchas gracias por la ayuda, por fin dió a como deseaba y esto quedaría de la siguiente manera por si alguien mas le sirve:
String urlreporte = "src/RptDxImagen.jasper"; String destino = "C:\\Reportes\\"+idserv+"\\"+idserv+".pdf"; //pdf(idpac, urlreporte, codpac);*/ try { Map parametros = new HashMap(); parametros.put("idserv", codserv); JasperReport jasperReport=(JasperReport)JRLoader.loadObject(urlreporte); JasperPrint reporte = JasperFillManager.fillReport(urlreporte, parametros, con); JRExporter exporter = new JRPdfExporter(); exporter.setParameter(JRExporterParameter.JASPER_PRINT, reporte); exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, destino); exporter.exportReport(); } catch(Exception e) { System.err.println( "Error iReport: " + e.getMessage() ); } Hay que tener en mente la versión del itext que debe ser 2.1.7 Título: Re: Reportes en pdf con guardado automático Publicado por: Usuario Invitado en 6 Abril 2015, 23:35 pm Fue un placer haber sido de ayuda. Si tienes un minuto, por favor marca el tema como solucionado (check verde en la parte superior derecha). Y no olvides, cada vez que pongas código, ponlo entre las etiquetas.
Un saludo. Título: Re: Reportes en pdf con guardado automático Publicado por: marc85 en 6 Abril 2015, 23:48 pm Gracias por las recomendaciones
|