PDA

Ver la Versión Completa : Abrir pdf sin guardarlo


M. FM.
04-05-2011, 10:54:18
Buenos días:

Tengo la información de un archivo pdf almacenado en un tipo TStream. Me gustaría poder mostrarla en el visor de pdf sin necesidad de guardarla primero en el ordenador, para no estar creando archivos temporales que luego no van a servir para nada. ¿Hay alguna manera de hacer eso?

Saludos y gracias,
Ana.

defcon1_es
05-05-2011, 10:10:56
Hola.

¿A qué te refieres con "visor pdf"?
¿al acrobat reader o a un visor que has programado tu?

Si lo has programado tu, deberías implementar (si no lo tienes) un método LoadFromStream para tu visor.

para no estar creando archivos temporales que luego no van a servir para nada

La verdad, no le veo ningún problema al hecho de crear ficheros temporales si despues de usarlos, los borras.

M. FM.
05-05-2011, 10:29:30
Hola:

Muchas gracias por tu respuesta. Con lo de visor pdf me refiero al Acrobat, y el problema que tengo es que no puedo eliminar esos archivos porque el usuario puede querer tenerlos abiertos después de cerrar la aplicación. Es decir, dejar de ejecutar el programa pero seguir teniendo el Acrobat abierto con el archivo que se ha creado.

Ahora los abro con ShellExecute, pero creo que con esa función no hay forma de pasarle el TStream en lugar de un fichero ya existente, así que necesitaría otra forma de hacerlo, pero no se me ocurre ninguna.

Saludos

duilioisola
05-05-2011, 12:24:30
No tengo la solución a lo de abrir PDF sin hacer archivos temporales.

Yo lo que hago es una carpeta en el directorio temporal de Windows.
Cada vez que cierro el programa borro todo lo que hay en esa carpeta.
Si el usuario está utilizando alguno de los archivos da un error que capturo en un bloque try..except y sigo como si nada hubiera pasado.

Si no lo borro hoy, lo borraré mañana...

defcon1_es
05-05-2011, 13:50:36
Te pregunté si el visor lo habías programado tu por si estabas usando el control activex de acrobat, por si sabias si ese activex tiene algún método para cargar datos de un stream.

PD: Acabo de importar el activex de acrobat 7 y solo veo una funcion LoadFile para la carga de datos.

M. FM.
05-05-2011, 13:52:27
Muchas gracias a los dos.

Cada vez estoy más convencido de que no hay forma de hacerlo, pero no quería quedarme sin preguntar por si acaso. Ayer incluso bajé un par de versiones de prueba de componentes para Delphi y PDF y ninguna de las dos hacía lo que yo necesitaba.

Saludos