Swing... a bailar el swing a compas de "mostrar el PDF"

Pues como lo dije... ya estamos prácticamente terminando el proyecto... en mucho menos tiempo de lo pensado, pero (inches peros) resulta que nos topamos con un obstáculo mayor: NECESITAMOS UN RENDER PARA VER PDFs EN SWING...
las opciones que hemos visto son:
JPedal... La versión gratuita no imprime
Gnostice PDF One Pro No renderea imagenes (o al menos las del PDF que necesitamos poner)
Apache PDFBox Si renderea las imágenes, pero lo hace mal. Tiene problema mostrando fonts que no están dentro de la especificación simple de PDF, me dicen que embabieron los Fonts dentro del documento... tengo duda...
ICEPDF No maneja fonts que sean los no citados como font por omisión en la esp. de PDF (similar a PDFBox) y si se queire el Fon Engine cuesta una lana.
BFPDF Es de paga.
PDF viewer de Acrobat se hizo con Java 1.1.8 y el instalador se cuelga y nunca instala nada.

Por lo que me gustaría saber si alguien ha usado JPod, ya que no se encuentra documentación de lo que puede hacer o no hacer, como integrarlo hacia Swing y el único ejemplo que ponen en la web es el de un software en Alemán.
Lo mismo si alguien ha usado PDfRenderer y me pudiera decir sobre ejemplos en la red... se los agradecería.
Fuera de este detalle crítico... que bonito ha sido regresar a Java...
Saludos

Comentarios

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de charlymex

Seguiré informando

Pues resulta que apliqué "fuerza bruta" (bueno, realmente winzip) para extraer sin instalar lo que trae el viewer de Acrobat, estoy en busca de un .zip que no viene ahi pero que se necesita, si funciona lo postearé con ejemplo completo... de hecho sea cual sea la solución que se use les aviso por que creo que vale la pena incluso hacer un comparativo de algo que considero muy necesario para aplicaciones de libros electrónicos en Java y seguramente para muchas aplicaciones de negocio que se piensen en Swing... después de todo reporteadores como XSL-FOP y Jasper tienen como sus salidas PDFs...

Imagen de luxspes

Osea que al final tuve razon: Reinventando Acrobat Reader

Osea que al final tuve razon, basicamente, estan reinventando el hilo negro. Me imagino que debe ser muy divertido, pero desde una perspectiva netamente del negocio me da miedo solo pensar los miles de pesos que se hubieran ahorrado dando click aqui.

Imagen de luxspes

Lobo: Pure Java Browser: La base para un visualizador EPub?

Por otro lado, dejando fuera los aspectos economicos y eticos de reinventar AcrobatReader, y aunque igual es algo para lo que ya existe opciones no basadas en java que son mucho mejores, si no tienen necesidad de "casarse" con PDF, podria probar con EPub , que es basicamente html embebido con los recursos en un mismo archivo.

Para visualizar eso, podrian ayudarse de Lobo.

Eso le daria a sus Ebooks mucho mas interactividad que PDF y la capacidad para acomodar su presentacion al dispositivo de presentacion (la diferencia es facil de notar cuando bajas un libro Epub vs un libro PDF y lo quieres ver en un dispositivo con una pantalla pequeña (como un celular Iphone / Android) la capacidad de hacer "reflow" del texto dependiendo del tamaño de la pantalla hace a Epub/html una opcion muy superior.

Imagen de charlymex

No es reinvención del hilo negro

No se trata de eso... se trata de varias cosas:
1.- Poder integrar en tus propias pantallas resultados de reportes, que en princiio pudiesen ser HTML, XML o PDF.
2.- La otra es tomar ventaja de la universalidad de los PDF para poder tener el libro electrónico y si el usuario quiere poder usarlo como "un libro más".
3.- Generar búsquedas especializadas dentro de los libros de acuerdo a la naturaleza del mismo... piensa por ejemplo en un libro de Sistemas donde tu quieres buscar como utilizar un JFrame, puede ser que si el libro es de Swing la búsqueda pueda traerte resultados infinitos si sólo pones JFrame, pero si generas un buscador especializado auxiliandote de alguna BD y algo como Lucene puedes generar un resultado compacto y coherente para el usuario mucho mejor que el que te de el reader de acrobat o ePub, luego lo despliegas en la misma ventana y el usuario lo manipula dentro del visor de PDF, esto es relevante en muchos libros electrónicos especializados (medicina, abogacía, etc) donde no solo importa la palabra buscada si no la especialidad a la que pertenece tu búsqueda (cardiología, pediatria, etc) e incluso parámetros adicionales como (en abogacía) si las leyes son internacionales, convenios, tratados, etc...
Si el problema fuera tan sencillo como para entregar sólo el PDF y un reader no abría preocupación alguna... además de que esto lo puedes ampliar incluso a una serie de programas que quieran o puedan usar una interfaz de navegación a internet y que te permita explorar libros electrónicos publicados en ese formato dentro del ámbito de navegación.
Si esa explicación no es suficiente para justificar la necesidad de ese componente.... pues quedo a tus órdenes para darte más razones.
Es más, si vamos al "lado obscuro" verás que evidentemente existen plugins para .NET para manejar formatos como XPS, flowDocuments, RTFs (similares a lo que pordría hacer nuestro TextArea y sus editores) e incluso PDFs (ya sea mediante un puente COM hacia componentes Activex que permitan usar el mismo AcroRead, pero esto haría que la solución fuese del "lado obscuro").
Creeme que por lo menos a mi no me gusta inventar el hilo negro, quiero que mi trabajo salga bien y rápido.
Saludos

Hace algún tiempo estuvo

Hace algún tiempo estuvo sonando JDIC, no sé que tan actualizado esté, pero por que no le hechas un ojo.

http://java.net/projects/jdic/

Imagen de charlymex

titulo

Tienes razón, lo edito...:D

école

école

Imagen de luxspes

Aplicas mecanismos de busqueda semantica entonces?

Poder integrar en tus propias pantallas resultados de reportes, que en princiio pudiesen ser HTML, XML o PDF.

Reinventar el navegador? (Bueno hasta eso un hibrido Lobo / IcePdf podria ser un producto interesante, aunque peligrosamente cercano a reinventar el hilo negro)

La otra es tomar ventaja de la universalidad de los PDF para poder tener el libro electrónico y si el usuario quiere poder usarlo como "un libro más".

De nuevo no entiendo, que hacer tu aplicacion que no se pueda lograr con Firefox + Acrobat Reader que justifique invertir tiempo y dinero en ella?

Generar búsquedas especializadas dentro de los libros de acuerdo a la naturaleza del mismo

Suena bien, pero no entiendo como haces que el motor de busqueda cambie de acuerdo a la naturaleza del mismo. Utilizas tecnicas de busqueda semantica?

Si el problema fuera tan sencillo como para entregar sólo el PDF y un reader no abría preocupación alguna... además de que esto lo puedes ampliar incluso a una serie de programas que quieran o puedan usar una interfaz de navegación a internet y que te permita explorar libros electrónicos publicados en ese formato dentro del ámbito de navegación.

Para "ampliar" AcrobatReader para "usar una interfaz de navegación a internet" basta instalar Firefox... de nuevo, no entiendo... e inclusive AcrobatReader es capaz de conectarse directo a un PDF en una URL arbitriaria....

Imagen de charlymex

Explicación

Requerimiento inicial... la aplicación debe poder correr en una máquina de cualquier SO (en este caso la limitamos a aquellas soportadas en Java) de manera independiente, es decir... SIN NECESIDAD DE CONECTARSE A NINGUNA RED (incluyendo internet, por supuesto) y que provea una interfaz DE ESCRITORIO para realizar BUSQUEDAS TEMATICAS o POR CONTEXTO dentro de un texto que se incluye en un libro impreso.
Efectivamente el motor de búsqueda es lo complejo... y el hacerlo cambiar es el chiste del programa, más datos no te podría dar por que tendría que darte todos los detalles del sistema.
El primer punto por el que no se usan JSPs y se usa Swing es por que debe funcionar en la máquina de cualquier persona, una secretaria por ejemplo, esté o no conectada a internet.
En cuanto esté la aplicaión en el mercado te comento cual es y si quieres te regalo una copia y hasta te invito a comer para intercambiar puntos de vista, pero de entrada veo que sigues pensando que es una aplicación de internet, cuando NO lo es...

Imagen de luxspes

Por fin le hallo pies y cabeza

Requerimiento inicial... la aplicación debe poder correr en una máquina de cualquier SO (en este caso la limitamos a aquellas soportadas en Java) de manera independiente, es decir... SIN NECESIDAD DE CONECTARSE A NINGUNA RED (incluyendo internet, por supuesto) y que provea una interfaz DE ESCRITORIO

Todo esto lo puede hacer .NET mediante mono o silverlight, o tambien QT. Y definivamente existe AcrobatReader el cual satisface todo esto.

para realizar BUSQUEDAS TEMATICAS o POR CONTEXTO dentro de un texto que se incluye en un libro impreso.

Okey, las BUSQUEDAS TEMATICAS o POR CONTEXTO, que van mas alla de solo buscar la palabra y aplican semantica para auxiliarse, si van mas alla del AcrobatReader.

Efectivamente el motor de búsqueda es lo complejo... y el hacerlo cambiar es el chiste del programa, más datos no te podría dar por que tendría que darte todos los detalles del sistema.

Ok.

El primer punto por el que no se usan JSPs y se usa Swing es por que debe funcionar en la máquina de cualquier persona, una secretaria por ejemplo, esté o no conectada a internet.

Ok.

En cuanto esté la aplicaión en el mercado te comento cual es y si quieres te regalo una copia y hasta te invito a comer para intercambiar puntos de vista, pero de entrada veo que sigues pensando que es una aplicación de internet, cuando NO lo es...

Ahora lo entiendo, y, por fin, me hace sentido.