gx-l | | | |
Alexander San M84936 | |
Esto puede Ayudarte
.....
A raíz de los cambios realizados por los navegadores por motivos de
seguridad, se dejaron de soportar applets JAVA. Algunos casos de uso se
resuelven utilizando el navegador en modo "kiosk" y de esa forma no se
muestra el diálogo de impresión.
Usar el navegador en modo kiosk tiene limitaciones:
- solo es posible imprimir en la impresora default.
- no se procesa la regla printer que selecciona el form/impresora a
utilizar.
- no es posible imprimir caracteres de control (scape chars) con códigos
menores al ASCII 32
Para solucionar las limitaciones del modo kiosk, se modificó el applet
empaquetándolo en forma de aplicación o servicio, la aplicación GeneXus se
comunica vía AJAX desde el navegador con este servicio.
IMPLEMENTACIÓN Y USO DESDE GENEXUS
La solución consiste en dos partes:
1. Llamada a servicio via ajax
2. Servicio de impresión
1. En la aplicación que va a invocar al reporte debe incluirse el
javascript estándar gxprint.js. Se puede hacer en cada Web Panel o en toda
la aplicación, incluyéndolo en la Master Page.
Event Start
Form.JScriptSrc.Add('gxprint.js')
Endevent
El gxprint.js sustituye la llamada a la impresión vía applet por una
llamada AJAX a un servicio de impresión.
2. El gxprintserver.jar es similar al applet printtingappletsigned.jar pero
transformado en un jar ejecutable que implementa un servicio Web HTTP.
¿CÓMO EJECUTAR EL gxprintserver.jar?
1. DIRECTO:
Se puede ejecutar directamente con: java -jar gxprintserver.jar
2. COMO SERVICIO:
Puede crearse para win/unix usando yajsw (http://yajsw.sourceforge.net/).
Existen otras alternativas, esta fue probada. Los pasos son sencillos, ver
quick start en http://yajsw.sourceforge.net/#mozTocId527639, también hay un
screencast (windows) https://www.youtube.com/watch?v=gX9tGInrIvg
REQUERIMIENTOS
- Java jre 1.7 o posterior. Para que la impresión con este método funcione
correctamente el servicio tiene que estar disponible desde la url que
invoca el browser.
- En el gxprint.js puede cambiarse la url (por defecto
http://localhost:8000/print), esta url es interpretada desde la máquina que
ejecuta el navagador.
El mié., 19 feb. 2020 a las 15:07, Sebastián Baioni (<
sebastianbaioni@gmail.com>) |
|
|
|
|
Back to gx-l |
|