entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

1voto

reporte con imagenes, PHP

Disculpen, buen día, alguien que me recomiende que puedo usar para exportar reportes a Excel, pdf o word.... eh encontrado algunas cosas pero, solo exportan texto, me gustaría saber si existe algún reporteador de PHP que puedas hacer el reporte con todo e imagen.

3 Respuestas

2votos

blaDDI Puntos2260
<html>
   <head>
     <title>Ajax Streaming Test</title>
   </head>
   <style>
    .modal {
     display: none;
     position: absolute;
     top: 25%;
     left: 25%;
     width: 40%;
     height: 15%;
     padding: 16px;
     background: #fff;
     color: #333;
     z-index:1002;
     overflow: auto;
}
.overlay{
     display: none;
     position: absolute;
     top: 0;
     left: 0;
     width: 100%;
     height: 100%;
     background: #000;
     z-index:1001;
     opacity:.75;
     -moz-opacity: 0.75;
     filter: alpha(opacity=75);
}
   </style>
   <body>
<center>
    <!-- muestras el contenido de la tabla-->
    <div>   
        <table class='table table-hover table-responsive'><thead><tr><th class='active'>id</th><th class='active'>nombre</th> <th class='active'>descripcion</th><th class='active'>modelo</th> <th class='active'>foto</th> <th class='active'>contenedor</th><th class='active'>nombre contenedor</th> <th class='active'>ubicación en contenedor</th></tr> </thead><tr><td>3</td><td>medidor</td><td>medidor iusa</td><td>iusa</td> <td align='center'> <img src='../FotoArticulos_1/IMG_1597.JPG' width='50' height='50'></td> <td align='center'> <img src='../FotosContenedor_1/OtroMueble.png' width='50' height='50'></td> <td>primer contenedor</td><td>adentro del contenedor</td></table>
    </div>
    <!-- Creas un TEXTAREA para almacenar el resultado CON el atributo hidden = TRUE -->
    <textarea id='contenido' hidden=true>   
        <table class='table table-hover table-responsive'><thead><tr><th class='active'>id</th><th class='active'>nombre</th> <th class='active'>descripcion</th><th class='active'>modelo</th> <th class='active'>foto</th> <th class='active'>contenedor</th><th class='active'>nombre contenedor</th> <th class='active'>ubicación en contenedor</th></tr> </thead><tr><td>3</td><td>medidor</td><td>medidor iusa</td><td>iusa</td> <td align='center'> <img src='../FotoArticulos_1/IMG_1597.JPG' width='50' height='50'></td> <td align='center'> <img src='../FotosContenedor_1/OtroMueble.png' width='50' height='50'></td> <td>primer contenedor</td><td>adentro del contenedor</td></table>
    </textarea>
    <!-- ESTE ENLACE ES PAR GENERAR EL REPORTE -->
    <a href="#" id="test">Imprimir Tabla</a>
</center>

     <div id="fade" class="overlay"></div>
    <div id="light" class="modal">
     <p>POR FAVOR ESPERE,GENERANDO SU REPORTE....</p>
    </div>

     <script type="text/javascript">
       document.getElementById('test').onclick = function() {

        document.getElementById('light').style.display='block';
        document.getElementById('fade').style.display='block';

        // aqui capturamos el valor del textarea        
        var contenido = document.getElementById('contenido').value;

        /*esta linea envia al archivo donde se generará el reporte 
          la variable contenido lleva el valor del textarea*/       
        var url = "reporte.php?contenido="+contenido;

        var filename = "file_name_exit";// nombre del archivo que se genera 
        var xhr = new XMLHttpRequest();
        xhr.open('GET', url);
        xhr.responseType = 'blob';

        xhr.onload = function(){
            // capas de la ventana modal
            document.getElementById('light').style.display='none';
            document.getElementById('fade').style.display='none'

            var a = document.createElement('a');
            a.href = window.URL.createObjectURL(xhr.response); // xhr.response es un blob file
            a.target = '_blank';
            a.download = filename; // nombre del archivo.
            a.style.display = 'none';
            document.body.appendChild(a);
            a.click();
            delete a;
        }// fin xhr.onload  
        xhr.send();
       };   
     </script>
   </body>
</html>

0voto

blaDDI comentado

Espero te sirva

0voto

fack comentado

Excelente!, muchas gracias, ya habia encontrado la manera de hacer el reporte, solo que tarda mucho cuando son mas de 8 páginas, entonces estaba buscando la manera de generar un aviso mientras se generaba, por que el usuario podía confundirse y seguir haciendo click en el enlace, pero con lo que pusiste ya supe que si se puede mostrar.... Muchas Gracias!

0voto

blaDDI Puntos2260

0voto

rach Puntos6010

hola, yo eh usado esta librería de php, es muy buena y en mi caso cuando exporto en power point eh podido generar imágenes e insertarlas sin problema, espero te sirva
http://librosweb.es/eventos/php-uk-conference-2013/introduccion-a-phpoffice-la-libreria-php-para-crear-archivos-word-excel-y-powerpoint/

0voto

fack comentado

Hola, gracias por contestar.... ya estoy utilizando dompdf, es justo lo que buscaba, por que imprime el código HTML.... ahora el problema es..... tengo un formulario y aquí lleno los campos para después dar click en el botón buscar, y se realizará la búsqueda y me aparecerá una tabla abajo mostrándome el resultado de la consulta supongamos que me regresa
.... es decir ....

<table class='table table-hover table-responsive'> <thead> <tr><th class='active'>id</th><th class='active'>nombre</th> <th class='active'>descripcion</th><th class='active'>modelo</th> <th class='active'>foto</th> <th class='active'>contenedor</th><th class='active'>nombre contenedor</th> <th class='active'>ubicación en contenedor</th></tr> </thead><tr><td>3</td><td>medidor</td><td>medidor iusa</td><td>iusa</td> <td align='center'> <img src='../FotoArticulos_1/IMG_1597.JPG' width='50' height='50'></td> <td align='center'> <img src='../FotosContenedor_1/OtroMueble.png' width='50' height='50'></td> <td>primer contenedor</td><td>adentro del contenedor</td></table>

hasta ahí todo me funciona bien, ahora, como puedo hacer para mandar toda esa cadena HTML que me regresa la consulta... a otra página donde realizo el PDF???

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta