viernes, 16 de marzo de 2018

Crear PDF con Ireport

Se me presento la oportunidad de crear un reporte en PDF desde JAVA SWING y posteriormente abrir el PDF creado.

Para implementarlo use los siguientes recursos:

  1. Ireport 4.7: Para crear el reporte y compilar a .jasper, en la propiedades del reporte se debe indicar lenguaje java. (Por defecto esta seleccionado Groovy)
  2. Las librerias utilizadas son: 
    • commons-beanutils-1.8.2.jar
    • commons-collections-3.2.1.jar
    • commons-digester-2.1.jar
    • commons-javaflow-20060411.jar
    • commons-logging-1.1.jar
    • iText-2.1.7.jar
    • jasperreports-4.7.1.jar
    • jasperreports-fonts-4.5.0.jar
    • jfreechart-1.0.17.jar
    • jxl-2.6.10.jar
    • png-encoder-1.5.jar
    • poi-3.7-20101029.jar
  3. Creamos una clase con el metodo para crear los reportes PDF:
import java.util.Map;
import javax.swing.JOptionPane;
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.util.JRLoader;

/**
 *
 * @author lcampos
 */
public class UtilJasper {

    final public static void repPdf(
            Map parametro,
            String _rutaJasper,
            String _rutaPdf
    ) {
        JasperPrint jasperPrint = null;
        JasperReport masterReport = null;
        try {
            masterReport = (JasperReport) JRLoader.loadObject(_rutaJasper);
            jasperPrint = JasperFillManager.fillReport(masterReport, parametro, Mdi.cn);
            JasperExportManager.exportReportToPdfFile(jasperPrint, _rutaPdf);
        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, "Error al Generar Reporte..");
        }
    }
}

Observacion: El parametro Mdi.cn, hace referencia a la conexion a la base de datos via JDBC.

El método se llama de la siguiente manera:

 //CREAR PDF
                        Map _parm = new HashMap();
                        _parm.put("_parm1", parametro1);
                        _parm.put("_parmN", parametroN);      
                        UtilJasper.repPdf(_parm, _ruta, _urlPdf);
Donde: 

_parm: Es el conjunto de parametros que estan definidos es nuestro reporte.
_ruta: Es el directorio en donde se encuentra el archivo .jasper (Fuera del SRC)
_urlPdf: Es el directorio en donde se guarda el PDF creado

Para abrir el PDF creado usaremos el siguiente codigo:

//ABRIR PDF
 try {
       File path = new File(_urlPdf);
       Desktop.getDesktop().open(path);
 } catch (IOException ex) {
       ex.printStackTrace();
 }

No hay comentarios:

Publicar un comentario