Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Abrir PDF y esperar a que termine (https://www.clubdelphi.com/foros/showthread.php?t=80113)

mjjj 05-09-2012 01:29:38

Abrir PDF y esperar a que termine
 
Estimados, estoy con aplicación que abre archivos pdf que estan guardados en una BF Firebird 2.5.
La rutina es esta

Código Delphi [-]
begin
i := 0;
while i <> -1 do
begin
   inc(i);
   filename := 'C:\documento_'+inttostr(i)+'.pdf';
   if not FileExists(fileName) then i:=-1;
end;
TBlobField(ibquery2.FieldByName('pdf')).SaveToFile(filename);
ShellExecute(factura_revisarform.Handle,nil,PChar(filename),'','',sw_shownoactivate); 
end;

Revisa que no exista el archivo documento_x, y una vez que no lo encuentra lo guarda y en seguida lo abre. Esto funciona sin problema, pero al cabo de un tiempo tengo muchisimos: por ejemplo documento_10000.

El se podría resolver detectando cuando se cierra el pdf y eliminar el archivo.
Se les ocurre alguna otra idea, se podra guardar en memoria y abrir sin tener que guardarlo necesariamente en el disco? esta es la idea que mas me gusta, pero no se como ni si se puede hacer!!

Espero me puedan ayudar.

roman 05-09-2012 17:44:10

Desconozco si existe alguna forma de visualizar el pdf sin guardarlo previamente en disco, pero lo que sí puedes hacer es usar el control ActiveX de Acrobat que se instala cuando instalas el Acrobat Reader. Lo importas a delphi usando el menú Component|Install ActiveX Control. Con este control puedes visualizar el documento dentro de tu aplicación y así tienes control de cuándo se cierra y sabes cuándo borra el archivo.

// Saludos

mjjj 05-09-2012 18:50:41

Gracias Roman, funciono perfecto. Sin embargo, cuando distribuyo la aplicación no corre en otros PC. Copie la libreria (adobe.bpl) del componente y sigue sin ejecutarse. No arroja ningún error, simplemente no se ejecuta.

Como podre solucionar esto?

ElKurgan 06-09-2012 07:39:10

Cita:

Empezado por mjjj (Mensaje 441932)
Gracias Roman, funciono perfecto. Sin embargo, cuando distribuyo la aplicación no corre en otros PC. Copie la libreria (adobe.bpl) del componente y sigue sin ejecutarse. No arroja ningún error, simplemente no se ejecuta.

Como podre solucionar esto?

Porque el bpl es de Delphi, pero en los equipos tiene que estar instalado o registrado el Active X de Adobe.

Un saludo

roman 06-09-2012 17:03:16

Así es, como dice ElKurgan, debes tener instalado el Acrobat Reader, lo que no es inusual. Otros visors de PDFs, como Foxit, también incluyen un control ActiveX.

// Saludos


La franja horaria es GMT +2. Ahora son las 00:47:23.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi