Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   PDF aus DB anzeigen im Webbrowser? (https://www.delphipraxis.net/168064-pdf-aus-db-anzeigen-im-webbrowser.html)

blondervolker 8. Mai 2012 07:58

AW: PDF aus DB anzeigen im Webbrowser?
 
Guten Morgen,

hab nun das Acropdf auf die Form geklatscht.Im Datenbankmemo1'PDFFILE' hab ich ein Blobfeld.Dort ist die PDF Datei schon gespeichert im "Wurstelformat".:-D
Wie bekomme ich das Ding jetzt zur Vorschau?
Bei dem Code wird gemeckert:
E2007 Konstante oder Typenbezeichner erwartet:oops:

Delphi-Quellcode:
procedure TForm17.Button2Click(Sender: TObject);
var
PDFFILE:Acropdf1;
begin
AcroPDF1.LoadFile('ADOTable1.PDFFILE.pdf');
end;

Klaus01 8. Mai 2012 08:05

AW: PDF aus DB anzeigen im Webbrowser?
 
Guten Morgen,

ich denke nicht, dass Acropdf eine Datei direkt aus der Datenbank laden kann.
loadFile riecht auch eher nach dem Laden von einer Datei.

Und dann könntest Du noch kurz erklären, was Du dir dabei gedacht hast:
Delphi-Quellcode:
procedure TForm17.Button2Click(Sender: TObject);
var
  PDFFILE:Acropdf1;
begin
  AcroPDF1.LoadFile('ADOTable1.PDFFILE.pdf');
end;
Ist AcroPDF1 nun ein Type oder eine Instanz?

Grüße
Klaus

blondervolker 8. Mai 2012 08:11

AW: PDF aus DB anzeigen im Webbrowser?
 
Hab es jetzt so probiert und es kommen keine Fehlermeldungen mehr.
Bin ich schon mal Stolz.

Außer ein Infofenster,ich soll die dusseligen Lizenzbedingungen von Adobe akzeptieren.Aber ich kann da nicht mal ein Häkchen setzen.
So ein Müll...

Delphi-Quellcode:
procedure TForm17.Button2Click(Sender: TObject);
var
PDFFILE:PDFViewer.TAcroPdf;
begin
AcroPDF1.LoadFile('ADOTable1.PDFFILE');
end;

Klaus01 8. Mai 2012 09:54

AW: PDF aus DB anzeigen im Webbrowser?
 
Delphi-Quellcode:
uses
  .. ActiveX ..
Delphi-Quellcode:
procedure LoadPDFFromStream(WebBrowser: TWebBrowser; const Stream: TStream);
var
  flag : OleVariant;
begin
  flag := 0;
  WebBrowser.Navigate('about:blank', flag,flag,flag,flag);
  while WebBrowser.ReadyState < READYSTATE_INTERACTIVE do
    Application.ProcessMessages;

  if Assigned(WebBrowser.Document) then
  begin
     if stream.Size > 0 then
       begin
         stream.Seek(0,soFromBeginning);
         (WebBrowser.Document as IPersistStreamInit).Load(TStreamAdapter.Create(stream));
       end;
  end;
end;
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  pdfStream: TMemoryStream;
begin
  pdfStream := TMemoryStream.Create;
  try
    pdfStream.LoadFromFile('file.pdf');
    LoadPDFFromStream(WebBrowser1,pdfStream);
  finally
    pdfStream.Free;
  end;
end;
Lädt ein PDF via Stream in den TWebBrowser.
Ein oder mehrere Beispiele hättest Du auch durch die Forumsuche gefunden.

Die Methode hat allerdings noch einen Haken, das PDF wird nicht gerendert.
Wenn der WebBrowser den Inhalt per Stream erhält, kann er nicht wissen um welchen Type es sich handelt.
Dazu müsste dem WebBrowser ein Content-Type mitgegeben werden.

Das wäre dann Dein Job.
Auch Dein Job ist es zuzusehen wie Du das PDF aus der Datenbank in den Stream bekommst.

Grüße
Klaus

Sybok Factor 8. Mai 2012 10:29

AW: PDF aus DB anzeigen im Webbrowser?
 
Zitat:

Zitat von Klaus01 (Beitrag 1165279)
Das wäre dann Dein Job.
Auch Dein Job ist es zuzusehen wie Du das PDF aus der Datenbank in den Stream bekommst.

Grüße
Klaus

Was ja nur eine Seite vorher erklärt wurde...


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:26 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz