Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   HTML Seiten als PDF abspeichern (https://www.delphipraxis.net/135271-html-seiten-als-pdf-abspeichern.html)

erich.wanker 8. Jun 2009 10:05


HTML Seiten als PDF abspeichern
 
Hallo Forum...

Ich würde gerne HTML Seiten (NUR Html Seiten) als PDF abspeichern..

ich hole mir die HTML Seite via:

Delphi-Quellcode:
   

    idClient: TIdHTTP;
    msData: TMemoryStream;

begin

..
  idClient := TIdHTTP.Create(Application);
  msData := TMemoryStream.Create;
  try
    idClient.Get('http://192.168.0.100/output.htm?Satz='+inttostr(nummerl)+'', msData);
    msData.Seek(0, soFromBeginning);
    Memo1.Lines.LoadFromStream(msData);
  finally
    idClient.Free;
    msData.Free;
  end;

..in ein MEMO

lösche via:

Delphi-Quellcode:
      bereinigen := Memo1.Text;
      bereinigen := Stringreplace(bereinigen,'window.print();','',[rfReplaceAll]);
      Memo1.Text := bereinigen;
einen störenden Script und speichere die Zeilen abschließend via: memo1.Lines.SaveToFile ...

Jetzt würde ich gerne ein PDF Dokument daraus machen.. hab mir schon einige Lösungsvorschläge angeschaut (ghostscript, pdfcreator, Openoffice, ect..) - bin aber noch nicht so richtig fündig geworden... (Ich würd gerne alles in Delphi einbetten oder max. ein paar DLL´s einbinden (die ich auch weitergeben kann/darf))

Hat jemand Vorschläge ?


Vielen Dank

Erich



Delphi7, Jedi, LMDTools, Reportbuilder, Firebird 2.1, Zeos Lib ...

Steku 8. Jun 2009 10:33

Re: HTML Seiten als PDF abspeichern
 
Hallo,

wenn es denn kostenlos sein soll, fallen mir spontan
PowerPdf (schon älter...)
oder
VPE Community Edition v5.00
ein.

Wobei für die VPE Community Edition folgendes gilt:

Zitat von der Hersteller Website:

"Die VPE Community Edition ist kostenlos und
kann - auch für kommerzielle Anwendungen - royalty-free verteilt werden...
... Die kostenlose Zurverfügungstellung beruht auf dem Prinzip der Fairness:
Wenn Sie VPE in einer kommerziellen Anwendung einsetzen die Gewinn erzielt,
möchten wir Sie bitten Lizenzen für die Vollversion zu erwerben."

Habe letztes Jahr mal damit "rumgespielt", ansonsten aber leider
keine weiteren Erfahrungen.

Vielleicht hilft es dir.

Gruß,
Steku

erich.wanker 8. Jun 2009 16:09

Re: HTML Seiten als PDF abspeichern
 
Hallo Steku,

danke für die Links ..

..ich mach´s jetzt doch anders ... ;-)

Ich erstelle ein JPG anstelle des PDF´s .. ist zwar ne Notlösung .. kann aber damit leben ..


Delphi-Quellcode:


procedure TForm1.WebBrowserScreenShot(const wb: TWebBrowser; const fileName: TFileName) ;
var
  viewObject : IViewObject;
  r : TRect;
  bitmap : TBitmap;
begin
  if wb.Document <> nil then
  begin
    wb.Document.QueryInterface(IViewObject, viewObject) ;
    if Assigned(viewObject) then
    try
      bitmap := TBitmap.Create;
      try                                        
        r := Rect(0,0, wb.Width,wb.Height) ;

        bitmap.Width := wb.Width-GetSystemMetrics(SM_CXVSCROLL);
        bitmap.Height := wb.Height-GetSystemMetrics(SM_CYHSCROLL);

        viewObject.Draw(DVASPECT_CONTENT, 1, nil, nil, Application.Handle, bitmap.Canvas.Handle, @r, nil, nil, 0) ;

        with TJPEGImage.Create do
        try
          Assign(bitmap) ;
          SaveToFile(fileName) ;
        finally
          Free;
        end;
      finally
        bitmap.Free;
      end;
    finally
      viewObject._Release;
    end;
  end;
end;
LiGrü

Erich


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:59 Uhr.

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