elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


  Mostrar Mensajes
Páginas: [1]
1  Programación / Desarrollo Web / Re: Duda con Creación dinamica de PDF en entorno web JAVA con Itext en: 22 Noviembre 2012, 02:12 am
Buen Día, Hector me he topado con ese mismo problema, hasta el momento lo que había hecho es la manera difícil, crear un pdf en una carpeta temporal pero si es muy tardado, algún ejemplo que me puedas aportar para entender como hacerlo al vuelo?, te lo agradecería.

Saludos

dejo mi codigo:
Código:
<%@page contentType = "text/html" pageEncoding="UTF-8"%>
<%@page import = "java.io.IOException"%>
<%@page import = "java.io.OutputStream"%>
<%@page import = "java.io.FileOutputStream"%>
<%@page import = "java.io.File"%>
<%@page import = "java.io.BufferedWriter"%>
<%@page import = "java.io.OutputStreamWriter"%>
<%@page import = "javax.servlet.ServletException"%>
<%@page import = "javax.servlet.http.HttpServlet"%>
<%@page import = "javax.servlet.http.HttpServletRequest"%>
<%@page import = "javax.servlet.http.HttpServletResponse"%>
<%@page import = "org.xhtmlrenderer.pdf.ITextRenderer"%>
<%@page import = "javax.servlet.http.HttpSession"%>
<%@page import = "java.sql.SQLException"%>
<%@page import = "java.io.PrintWriter"%>


<%@page import = "java.util.Vector"%>
<%@page import = "java.io.InputStream"%>
<%@page import = "java.io.FileInputStream"%>

<%@ page import="java.util.Vector" %>
<%@page import="java.util.ArrayList"%>

<%@page import= "java.sql.Timestamp"%>
<%@page import= "java.util.Date"%>
<%@page import= "java.text.SimpleDateFormat"%>



<%
   
    String strCadena = "";
    String htmlPDF = "";
    String strOrientacion = "";
    String strResultado = "";
    String strDependencia = "";
    String DATE_FORMAT = "yyMMddHHmmss";
    String fecha = "";
   
    int iPagina = 1;
    int iTotalEmpleados = 0;
    int iPaginaInicio = 0;
    int iPaginaFinal = 0;
    long iTotalPaginas = 0;
    int iOpcion = 0;
    int iRangoDesde = 0;
    int iRangoHasta = 0;
    int iOrdenar = 1;
    int iRegsXpagina = 10000;
   
    ArrayList vcResultado = null;
    Vector vcColumnas = null;

    int iColumnas = 0;
   
    File inputFile;
   
    ResultSQL result = null;
   
    try{
       
        if (request.getParameter("input-opcion")!= null
                && !request.getParameter("input-opcion").equals("undefined")){
                String tmp = request.getParameter("input-opcion");
            iOpcion = Integer.parseInt(tmp);
            }
       
         if (iOpcion == 4){
                    if (request.getParameter("input-rangoDesde")!= null
                        && !request.getParameter("input-rangoDesde").equals("undefined")){
                        iRangoDesde = Integer.parseInt(request.getParameter("input-rangoDesde"));
                    }
                   
                    if (request.getParameter("input-rangoHasta")!= null
                        && !request.getParameter("input-rangoHasta").equals("undefined")){
                        iRangoHasta = Integer.parseInt(request.getParameter("input-rangoHasta"));
                    }
            }else{
                if (request.getParameter("input-buscarCadena")!= null
                    && !request.getParameter("input-buscarCadena").equals("undefined")){
                    strCadena = request.getParameter("input-buscarCadena");
                }
            }
       
            if(request.getParameter("ordenar")!= null
                && !request.getParameter("ordenar").equals("")
                && !request.getParameter("ordenar").equals("undefined")){
            iOrdenar = Integer.parseInt(request.getParameter("ordenar"));
            }

            if (request.getParameter("orientacion")!= null
                && !request.getParameter("orientacion").equals("undefined")){
            strOrientacion = request.getParameter("orientacion");
            }
       
        //**XHTML
        Date date = new Date();
        SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT);
        fecha += sdf.format(date);
        inputFile = new File(getServletContext().getRealPath("tmp/temporal"+fecha+".xhtml"));

        if(!inputFile.exists()){ 
            inputFile.createNewFile();
        }
       
        result = new ResultSQL();
        result.setStrSever(request.getHeader("host"));
        result.setStrUbicacion(getServletContext().getRealPath("").toString());
        result.setiRegistrosXPagina(iRegsXpagina);
       
        result.resultSQLConecta("logsweb");
       
        String strTempEmpleados = "";
       
        if (iOpcion !=  4){
            vcResultado = (ArrayList) result.getConsultaEmpleados(strCadena, iOpcion, false, iPagina, iOrdenar, strOrientacion, true);
        }
        else{
            vcResultado = (ArrayList) result.getConsultaEmpleadosRangos(iRangoDesde,iRangoHasta, false, iPagina, iOrdenar, strOrientacion, true);
        }
                       
        Empleado empleado = null;
       
        strResultado +="    <div id='tbConsultasRecibidas' class='tabla-seguimiento'> "+
                                     "    <table class='tabla' id='tbConsultasRecibidas-tabla' align='center'>"+
                                     "              <thead>"+
                                     "    <tr class='thead'>";
       
        if (iOpcion != 2){
       
            strResultado +="                              <th>Dependencia</th>"+
                                         "                              <th>Nombre</th>"+
                                         "                              <th>Puesto</th>"+
                                         "                              <th>Sueldo Bruto (Incluye prestaciones)</th>"+
                                         "                              <th>Prima Vacacional</th>"+
                                         "                              <th>Aguinaldo</th>"+
                                         "                              <th>Pagos Anuales</th>"+
                                         "    </tr>"+
                                         "              </thead>"+
                                         "              <tbody>";
        }
        else{
                strResultado +="                              <th>Nombre</th>"+
                                         "                              <th>Puesto</th>"+
                                         "                              <th>Sueldo Bruto (Incluye prestaciones)</th>"+
                                         "                              <th>Prima Vacacional</th>"+
                                         "                              <th>Aguinaldo</th>"+
                                         "                              <th>Pagos Anuales</th>"+
                                            "    </tr>"+
                                            "              </thead>"+
                                            "              <tbody>";
        }
       
        for(int i = 0 ; i < vcResultado.size(); i++){

                empleado = (Empleado) vcResultado.get(i);

                String strOpcion = "";
                   
                if (iOpcion != 2){
                   
                    strResultado += "<tr class='fila1'>  "+
                                                  "     <td id='cadena'>"+empleado.getStrDependencia() + "</td>"+
                                                  "     <td id='cadena'>"+empleado.getStrNombre() + "</td>"+
                                                  "     <td id='cadena'>"+empleado.getStrPuesto() + "</td>"+
                                                  "     <td id='moneda'>"+empleado.getStrSueldo() + "</td>"+
                                                  "     <td id='moneda'>"+empleado.getStrPrimaVacacional() + "</td>"+
                                                  "     <td id='moneda'>"+empleado.getStrAguinaldo() + "</td>"+
                                                  "     <td id='moneda'>"+empleado.getStrPagosAnuales() + "</td>";
                    strResultado += "</tr>" ;
                   
                    }else{
                       
                            strResultado += "<tr class='fila1'>  "+
                                                          "     <td id='cadena'>"+empleado.getStrNombre() + "</td>"+
                                                          "     <td id='cadena'>"+empleado.getStrPuesto() + "</td>"+
                                                          "     <td id='moneda'>"+empleado.getStrSueldo() + "</td>"+
                                                          "     <td id='moneda'>"+empleado.getStrPrimaVacacional() + "</td>"+
                                                          "     <td id='moneda'>"+empleado.getStrAguinaldo() + "</td>"+
                                                          "     <td id='moneda'>"+empleado.getStrPagosAnuales() + "</td>";
                            strResultado += "</tr>" ;
                            strDependencia = empleado.getStrDependencia().toUpperCase();
                    }
        }
        strResultado+="             </tbody> "+
                                    "               <tfoot>  "+
                                    "               </tfoot> "+
                                    "           </table> "+
                                    "       </div>";
       
       
        htmlPDF +=     "<!DOCTYPE html>  "+
                                "<html> "+
                                "<head> "+
                                "<meta charset='UTF-8'></meta> "+
                                "<title>Sueldos de Personal</title> "+
                                "<link rel='stylesheet' media='print' href='../css/print.css' type='text/css'></link> "+
                                "</head> "+
                                "<body> "+
                                "<div class='contenedor-Principal'> "+
                                "    <div class='titulos'> "+
        if (iOpcion == 2){
            htmlPDF +="        <h4>"+strDependencia+"</h4> ";
        }
            htmlPDF +="    </div> "+
                                "    <br/> "+
                                "    <br/> "+
                                "    <br/> "+
                                        strResultado+
                                "</div> "+
                                "</body> "+
                                "</html>";
       
        BufferedWriter Fescribe=new BufferedWriter(new OutputStreamWriter(new FileOutputStream(inputFile,false), "utf-8"));   
        Fescribe.write(htmlPDF); 
        Fescribe.close();

        //***PDF
        String outputFile = getServletContext().getRealPath("tmp/sueldosplantilla"+ fecha +".pdf");

        OutputStream os = new FileOutputStream(outputFile);
               
        ITextRenderer renderer = new ITextRenderer();
       
        renderer.setDocument(inputFile);   
        renderer.layout();
        renderer.createPDF(os);
        os.close();

        //***Borrar XHTML
        if(inputFile.exists()){   
            inputFile.delete();   
        }
       
     }catch(Exception e){
        out.println("-1");
        Bitacora bitacora = new Bitacora();
        bitacora.setStrServer(request.getHeader("host"));
        bitacora.setStrUbicacion(getServletContext().getRealPath("").toString());
        bitacora.setITipoBitacora(1);
        bitacora.setStrInformacion(e, request.getServletPath());
        bitacora.grabaBitacora();
    }finally{
       
    }

%>
<!DOCTYPE html>
<html>
  <head>
    <title>
    </title>
      <script type='text/javascript' src='js/jquery-1.8.2.js'></script>
      <script type="text/javascript">
          window.location.replace("../tmp/sueldosplantilla<%=fecha%>.pdf");
      </script>
  </head>
  <body>
    <header>Header</header>
    <div id='content'>Content</div>
    <div id='footer'>Footer</div>
  </body>
</html>

Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines