PDA

Ver la Versión Completa : visualizar pdf de una BD


Rc96
04-10-2017, 21:33:50
Hola buenas tardes. Queria ver si alguien podria decirme como visualizar un archivo pdf que esta guardado en una tabla en un campo blob pero solo visualizarlo le idea es que solo pueda verlo mas no descagarlo espero puedan ayudarme. De antemano Muchas gracias.
Por si es necesario uso Delphi 10.2 + Firedac + postgresql

movorack
04-10-2017, 23:19:37
Hola,

Puedes traer el archivo de la DB y guardarlo en una ruta temporal


function DirectorioTemporal : string;
var
Buffer : array [0 .. MAX_PATH] of Char;
begin
if GetTempPath(Length(Buffer), Buffer) > 0 then
Result := IncludeTrailingBackslash(Buffer);
end;


Luego cargarlo en un visor dentro de tu app. y al final borrar el archivo temporal.

Para el visor puedes importar el visor de PDF de Acrobat, aunque necesitarás que los clientes tengan PDF instalado. Si usas este visor no evitarás que puedan guardar el archivo. al menos yo no se como modificar esas opciones.

usar ese visor es simple. aquí un ejemplo (http://edn.embarcadero.com/article/22101) y la documentación del ActiveX está aquí (http://help.adobe.com/livedocs/acrobat_sdk/9.1/Acrobat9_1_HTMLHelp/wwhelp/wwhimpl/js/html/wwhelp.htm?href=IAC_API_OLE_Objects.103.167.html&accessible=true)

Entiendo que no quieres descargarlo, pero como la posible solución la planteo con el visor de Acrobat, con este no se como hacer la carga desde un stream.

MAXIUM
05-10-2017, 03:02:19
Aclaro que no tengo idea, pero que tal si visualiza ese PDF como imagen o lo convierte en imagen. Al menos así no se podrá editar.

Por otra parte hay utilitarios gratuitos en línea de comando que hacen esta conversión, con lo que no necesitará tener nada adicional instalado.

ElDioni
05-10-2017, 13:06:51
Creo que en este hilo

http://www.clubdelphi.com/foros/showthread.php?t=16229

roman comenta que se puede ocultar la barra de herramientas del visor de PDF.

Saludos.

Rc96
05-10-2017, 15:12:14
Movorack muy buena tu idea gracias me funciona muy bien solo si pudieras decirme como destruir esa ruta temporal.

ElDioni la verdad roman si da la solucion para quitar la barra de herramientas pero no lo hace aun me aparece la opcion de guardar
el archivo sabes como solucionarlo.

MAXIUM se ve interesante tu idea tendria que probar el datalle y no se si es por falta de conocimiento pero no habria problema para convertir un pdf de varias hojas a imagen??

ROMAN aparece con tu sabiduria!! :D

Gracias a todos por sus respuesta. Ojala puedan seguir ayudandome.

movorack
05-10-2017, 15:36:57
La barra mas completa viene oculta por defecto


procedure TForm3.LoadPDF1Click(Sender: TObject);
var
OpenDialog : TOpenDialog;
begin
OpenDialog := TOpenDialog.Create(Self);
try
OpenDialog.Filter := 'PDF Files (*.pdf)|*.pdf';
if OpenDialog.Execute then
begin
//AcroPDF1.setShowToolbar(false); //Esto oculta la barra principal, la cual ya viene oculta por defecto
AcroPDF1.src := OpenDialog.FileName;
end;
finally
FreeAndNil(OpenDialog);
end;
end;


pero en su lugar muestra otra barra flotante que permite guardar (Parecido a la siguiente imagen)

https://blogsimages.adobe.com/acrolaw/files/2011/08/003_download_help.png

Rc96
05-10-2017, 15:46:21
tienes razon movorack siempre, aunque oculte la barra de herramientas, me saldra esa otra flotante que me arruina el momento jeje aun asi gracias por la ayuda. si es posible podrias decirme como borrar la ruta temporal?. y si saben de algun otro componente que pueda ver el pdf seria genial.

movorack
05-10-2017, 16:11:16
no tienes que borrar la ruta, solo el archivo. (http://docwiki.embarcadero.com/Libraries/Tokyo/en/System.SysUtils.DeleteFile)

Rc96
05-10-2017, 16:39:28
Muchas gracias movorack aprecio tu ayuda y los que respondieron. Seguire buscando a ver si lo puedo lograr si saben de algo mantendre los oidos activos xD

nincillo
05-10-2017, 19:44:11
¿Alguien puede decirme como añadir este componente en un Delphi 2007?

Tengo instalada la versión XI del adobe reader.

Los pasos que estoy intentando seguir: Component / Import Component / Import ActiveX Control / Selecciono Adobe Acrobat 7.0 Browser Control Type Library 1.0, pero en ningún momento veo la opción de instalar.

Rc96
05-10-2017, 19:52:52
Mira este video : https://www.youtube.com/watch?v=n8qDdal-6mY a partir del min 1:30 muestra como hacerlo. Espero te sirva.

nincillo
05-10-2017, 20:44:16
Mira este video : https://www.youtube.com/watch?v=n8qDdal-6mY a partir del min 1:30 muestra como hacerlo. Espero te sirva.
Perfecto!
Muchas gracias!