Einzelnen Beitrag anzeigen

Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.768 Beiträge
 
Delphi 10.4 Sydney
 
#14

AW: PDF aus DB anzeigen im Webbrowser?

  Alt 8. Mai 2012, 10:54
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
Klaus
  Mit Zitat antworten Zitat