2010-06-01 8 views
5

Estoy usando un JTree para navegar por el contenido de una carpeta y quiero que cuando un usuario haga clic en un archivo, el software muestre una vista previa (una captura de pantalla de su primera página).¿Cómo obtener una vista previa de cualquier archivo dentro de una aplicación Java?

Los archivos son en su mayoría documentos de Office y PDF.

Me las arreglé para hacerlo en un archivo PDF utilizando un módulo descargado de Sun, pero me gustaría saber si hay una manera de hacerlo utilizando cualquier software (preferiblemente JAR) o incluso la API incorporada de Windows.

Estaba pensando en convertir el archivo a PDF y luego hacer una vista previa de este PDF, pero esto no es óptimo.

¿Alguna idea?

Respuesta

5

Tengo el problema similar y el mejor que he encontrado después de unos días de google está siguiendo.

Alfresco tiene el mismo problema y lo resolvió con:

  • una oficina abierta que se ejecuta en modo de servidor (zócalo) y todos los documentos de la oficina son enviados por aire libre para abrir la oficina con el fin de convertirlos en PDF
  • los PDF se convierten en .swf espectador gracias a SWFTOOLS
  • está integrado esta .swf en el HTML
  • para las imágenes, se utiliza para crear ImageMagick pequeña versión del archivo supongo

Personnaly, voy a tratar de poner en práctica esta manera:

  • la conversión de documentos de oficina a PDF gracias a la oficina abierta en el modo de toma de
  • transformar la primera página del PDF en un PNG gracias a JPedal biblioteca (la versión LGPL)
  • Diplay que PNG para el usuario final
  • para las imágenes será quizá usar ImageMagick también ... pero por ahora, estoy usando SeamImage.scaleToFit API
0

pregunté esto hace mucho tiempo: solution

+1

Gracias, pero eso no es todo lo que quiero. Quiero tener una miniatura del archivo, no una vista previa de su icono. – Studer

1

Tuve el mismo problema y tropecé con este hilo. Comenzando con la solución de Anthony, estoy usando Libre Office en modo socket para convertir documentos de oficina directamente a PNG. Lamentablemente, esto no es posible desde PDF. Here es una buena descripción de qué formas son posibles.

unoconv --connection 'socket,host=127.0.0.1,port=2220,tcpNoDelay=1;urp;StarOffice.ComponentContext' -f png -e PageRange=1 your_file_name.extension 

poca referencia para iniciar Libre Office en modo de toma: click me

Cuestiones relacionadas