martes, octubre 01, 2019

Imprimir en WEB



En la carpeta weapps del apache creé la carpeta pdfs donde genero las factura que genera el programa. Ese path lo guardo en la base de datos en una tabla de parámetros. Entonces cuando voy a imprimir la factura obtengo ese path y lo concateno con el nombre que le voy a poner al pdf y lo cargo en una variable para pasárselo como parámetro al reporte.
 
&archivopdf=Path+”NombreArchivoPDF.pdf”
 
ReFactura.Call(par1,par2, ...,&archivopdf)    // Con esto genero el pdf en “C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\pdfs”
 
En otro campo de la tabla parámetros tengo guardada la Url en la cual voy a buscar el archivo pdf que necesito abrir en el navegador para imprimir, eso junto con el nombre del archivo lo concateno y lo guardo en una variable, que voy a utilizar en el Java Script para imprimirlo.
 
&url=Url+”NombreArchivoPDF.pdf”    // Concateno la url al archivo  “http://localhost:8080/pdfs/” +”NombreArchivoPDF.pdf”
           
            JS.caption =     '<script language="JavaScript">'
            JS.caption +=        "var myWindow=window.open('"+ trim(&url) +"','','left=100,top=150,height=700,width=1024,dependent=yes,scrollbars=Yes,resizable=Yes,toolbar=no,menubar=no');"
            JS.caption +=        'myWindow.focus();'
            JS.caption +=        'myWindow.print();'
            JS.caption +=    '</script>'
           
El JS abre la ventana para mostrar el pdf e inmediatamente lo manda a imprimir mostrando la vista previa de impresión. Obviamente Sustituir localhost y el puerto por el servidor web en el que se encuentre el sistema.

Existe Otra Alternativa:Tambien hay un plug-in de JQuery que trabaja en IE, Edge, Chrome y Firefox: https://github.com/posabsolute/jQuery-printPage-plugin

En Chrome y Edge se muestra una pantalla de seleccion para escojer la impresora.  Este plug-in ha existido por una decada y se fue actualizado updated un par de años atras


Gracias a Pablo Plá Marzano del foro de GX.