Mostrar informe externo en un visor HTML


([N1] andrei) #1

Buenas,

Estoy intentando mostrar un informe externo (vReport), que previamente guardo en tempPath().

Lo hago de la siguiente manera:

"<html>
  <head>
  </head>
  <body style=\cmargin: 0px;\c>
    <div align=\ccenter\c>
		<object type=\capplication/pdf\c 
				data=\c$MIVARIABLE$\c 
				width=\c100%\c 
				height=\c100%\c >
			ERROR (no puede mostrarse el objeto)
		</object>
    </div>
  </body>
</html>"

Todo ese código va en una variable y la pongo como contenido de un visor HTML.
Total, funciona perfectamente en máquinas Windows, no sé porque el Visor HTML no funciona en MAC, me devuelve ERROR (no puede mostrarse el objeto) - que es lo que tengo yo puesto.

Pensaba que igual era un problema con la ruta tempPath() de MAC, pero yo cojo exactamente el código de arriba, lo pego en un fichero HTML y lo abro con Safari bajo MAC y sí que lo abre, entonces no entiendo porque no funciona en el Visor de Velneo.


([N1] andrei) #2

Vale, acabo de encontrar esto: http://velneo.es/foros/topic/visor-html-y-documento-pdf/

Básicamente en el Visor HTML no se pueden ver archivos .pdf bajo MAC.

http://velneo.es/foros/topic/visor-html-y-documento-pdf/


([N3] pacosatu) #3

Hola andrei.

Yo también he tenido problemas contínuos con la visualización de PDF’s en el visor HTML, incluso con Windows.
He optado finalmente por usar el comando “Ejecutar documento()” y que sea el sistema operativo de turno el que decida con qué lector abre el PDF.

Además, ten en cuenta que el Visor HTML de Velneo está basado en el motor Webkit que tiene implementado QT. Este motor Webkit está en fase de desaparición y QT ya recomienda encarecidamente que no se use en futuros proyectos. Se ha desarrollado un nuevo motor QT WebEngine que promete mayor compatibilidad entre sistemas operativos y nos dará mayores alegrías en el uso de HTML 5 y las API’s asociadas.

Velneo acabará tarde o temprano incorporando este nuevo motor a nuestros formularios.

Por esta razón, emprender proyectos complejos a largo plazo con Webkit estarán condenados al fracaso.

Saludos
Paco Satué


([N1] andrei) #4

Realmente lo que quería conseguir era poder previsualizar varios documentos (externos >> vReport) en una pestaña, y navegar por ellos a través de un combo rellenado previamente por JS.

Por lo tanto al principio estaba reacio con la idea de tener que abrir una aplicación tipo Adobe Reader (o lo que el cliente use) o la ventana de Velneo misma que sale al usar el comando Informe externo: Previsualizar informe() - aunque al final creo que usaré esta última opción.

Gracias por tu respuesta


([N1] wikan) #5

Habeís probado con https://mozilla.github.io/pdf.js/

No lo he hecho pero quizás así vale para cualquier plataforma.


([N1] andrei) #6

Sí que lo he probado, y funciona. Simplemente en el entorno donde estoy preferimos no incorporar una herramienta externa - de momento; aunque lo usemos en nuestro propio servidor al ser open source.


([N1] wikan) #7

Ya usas herramientas externas, solo tienes que incorporar los ficheros al proyecto y guardarlos en la cache del cliente.

La instalación va a ser transparente y si te soluciona el problema, bien esta.


([N3] pacosatu) #8

Hola andrei.

Dices: Por lo tanto al principio estaba reacio con la idea de tener que abrir una aplicación tipo Adobe Reader (o lo que el cliente use) …

Precisamente esa es la cuestión, ¿Por qué obligamos al usuario a manejar distintos editores/visualizadores para el mismo formato de documento?

Si vas a abrir un documento PDF, será mejor hacerlo en el visualizador que tenga definido el Usuario en su equipo, ya sea un PC o dispositivo móvil. Es decir, abre el PDF con la herramienta que el cliente use y seguro que te lo agradecerá.

Saludos
Paco Satué


([N1] andrei) #9

@wikan no uso herramientas externas; pongo un código HTML (que lo guardo en una variable) en un Visor HTML (propio de Velneo) y nada más. Para mi usar un informe vReport, si te refieres a eso, no es usar algo externo, sigue siendo algo relacionado con Velneo. Gracias por tu respuesta de todos modos.

@seh no voy a discutir de si es mejor usar algo interno (Velneo) o algo externo (Adobe Reader), es totalmente subjetivo y no es mi problema realmente, mi problema era a nivel técnico. Si quieres abrimos un debate sobre si es mejor ver un .pdf con lo que usa el cliente o con lo que ofrece Velneo. ¿Y si el cliente no usa un lector .pdf? jeje Muchas gracias también por tu respuesta.


([N1] Ruiz) #10

Para el cliente va a ser totalmente transparente y tu para desplegar la solución no tendrás que preocuparte mucho, adjuntar ficheros y seguir generando esa variable para el visor.

La cuestión es que te quedará solucionado el problema. Sino tendrás que esperar mínimo dos meses o hasta que Velneo saque la versión que abandone Webkit.


([N3] veldevelop) #11

¿Alguien tendría la amabilidad de colgar algún ejemplo de como usar esto en velneo?
https://mozilla.github.io/pdf.js/

Veo cosas muy muy interesantes en js pero nunca veo como se integran con velneo.

Saludos y Gracias de ante mano


([N1] andrei) #12

@veldevelop, para probar, yo personalmente, lo he hecho sin incorporar los archivos JS a mi instalación. No me interesaba incorporarlos. Pero si quieres adjuntar los archivos, haces un adjunto en la caja que necesites y llamas a este JS desde un proceso, manejador de evento, o lo que te haga falta.

Para probarlo es fácil:

  1. pones un Visor HTML en un formulario.
  2. a ese Visor HTML le pones un contenido, en el caso de la prueba que hice, URL. Pinchas sobre el Visor, vas a sus Propiedades y buscas Opciones. Ahí eliges la opción de la URL.
  3. con un proceso, manejador de evento, o lo que tú prefieras, rellenas el contenido a mostrar. (yo lo hago con un manejador de evento, que se ejecuta en ON SHOW - y lo que hago es simplemente a una variable URL - alfabética - le engancho un enlace a un .pdf, por ejemplo este mismo: http://online.verypdf.com/examples/pdfeditor.pdf, y se lo mandas a tú script, por probar puedes colgarlo aquí: http://online.verypdf.com/app/reader/web/viewer.html?url=)
  4. entonces tu variable (y lo que se va a mostrar) quedaría así: http://online.verypdf.com/app/reader/web/viewer.html?url=http://online.verypdf.com/examples/pdfeditor.pdf
  5. arrancas tu aplicación y ese pdf se cargará en tu Visor HTML, a través de la librería JS, que está hosteada en esa página.

Repito, este es un ejemplo rápido de prueba, te lleva como mucho 5 minutos hacerlo todo y PROBAR. Si luego te gusta como queda el tema, y quieres usarlo en tu aplicación a diario, puede hacer dos cosas:

  1. descargas los ficheros y los ADJUNTAS a tu proyecto y lo llamas.
  2. incorporar ese script a tú servidor, haces un npm, un git o lo que prefieras y lo llamas exactamente como te he explicado antes pero a tu propio servidor.

Pasa por aquí: http://velneo.es/foros/topic/visor-html-sdv/


([N3] veldevelop) #13

Andrei muchísimas gracias por tu explicación, pero el llamarlo desde una url externa no es en lo que yo pretendia. En la empresa en la cual trabajo la navegación es limitada y no es posible usar ninguna url externa, de ahí mi interes por hacerlo con adjuntos y colocarlo en el equipo local del usuario para visualizar pdf’s. Tengo interés en ver como se encaja un js externo con velneo.

Saludos y Gracias de nuevo


([N1] andrei) #14

Pasa por aquí: http://velneo.es/foros/topic/actualizar-ficheros-externos/

Adjunta tu fichero (en este caso, el script js para ver .pdf). Busca el botón de adjuntar, mira la primera captura del enlace y simplemente agregalo a tu solución. Será invisible para tus clientes, ya que ese fichero luego se incoporra a la instalación.
En cuento lo tengas agregado, simplemente llama a ese JS como a un manejador - pásale tu .pdf básicamente (una ruta local o lo que tú queieras).