Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi HTML als PDF ausgeben (https://www.delphipraxis.net/148895-html-als-pdf-ausgeben.html)

erich.wanker 10. Mär 2010 13:29


HTML als PDF ausgeben
 
Hallo Leute,

ein Gerät mit embeeded Linux/ApacheWebserver wird ausgelesen und die Werte als "Bericht[x].jpg" abgespeichert.
Funktioniert so weit einigermaßen. Schöner wäre natürlich, wenn der Bericht als PDF abgespeichert wird.
Nur - wie könnte ich das machen?

Vielen Dank
Erich Wanker

IST-Situation:

Ich lade einen HTML Text von einer Quelle in ein Memo via:
Delphi-Quellcode:
  idClient := TIdHTTP.Create(Application);
  msData := TMemoryStream.Create;
  try
    idClient.Get('http://'+edit1.Text+'/goto.htm?Satz='+inttostr(nummerl)+'', msData);
    msData.Seek(0, soFromBeginning);
    Memo1.Lines.LoadFromStream(msData);
   
  finally
    idClient.Free;
    msData.Free;
  end;
anschließend bereinige ich den Text und laden ihn in einen Webbrowser via:
Delphi-Quellcode:
      bereinigen := Memo1.Text;
      bereinigen := Stringreplace(bereinigen,'window.print();','',[rfReplaceAll]);
      bereinigen := Stringreplace(bereinigen,'</head>','</head> <font face="Arial">',[rfReplaceAll]);
      Memo1.Text := bereinigen;

      LoadHTMLToWebbrowser(WebBrowser1,memo1.lines);
      webbrowser1.Refresh;

Anschließend mach ich einen Screenshot und speichere den ab via:
P.S.: da die Berichte immer gleich lang sind, hab ich die Größe des Webbrowser händisch passend gemacht und den Webbrowser.visible:=false geschaltet .. Schrecklicher Work-around ;-)
Delphi-Quellcode:
WebBrowserScreenShot(WebBrowser1,exepfad+'Bericht['+inttostr(nummerl)+'].jpg');

Codeschnipsel betreffend "Screenshot":
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;

Benutze Delphi7
LMD-Tools
ZEOS-Lib
Reportbuilder9
Firebird 2.1
MadTools
...

Matze 10. Mär 2010 13:35

Re: HTML als PDF ausgeben
 
Hallo,

hast du die damals erwähnten Tools angesehen? Das gleiche Thema hast du hier schon einmal gestellt. ;)
Es gibt natürlich auch diverse Report-Komponenten, meist jedoch kostenpflichtig: Fast Report, Rave Reports, Reportbuilder, List & Label

Grüße, Matze

exilant 10. Mär 2010 13:36

Re: HTML als PDF ausgeben
 
Zitat:

Zitat von erich.wanker
Hallo Leute,


.... Schöner wäre natürlich, wenn der Bericht als PDF abgespeichert wird.


PDF Drucker installieren (edocPrintPro),
Per Explorer-Automation die Webseite öffnen und auf dem PDF Drucker ausgeben. Das sollte sehr simpel zu realisieren sein.

erich.wanker 10. Mär 2010 14:20

Re: HTML als PDF ausgeben
 
Zitat:

Zitat von Matze
...Das gleiche Thema hast du hier schon einmal gestellt. ;)
Es gibt natürlich auch diverse Report-Komponenten, meist jedoch kostenpflichtig: Fast Report, Rave Reports, Reportbuilder, List & Label

Hallo Matze,

leider haben diverse Versuche nix brauchbares gebracht..
Probleme mit VPE und Win7 64 bit
Probleme mit GhostScript und meinen Fähigkeiten ;-)
Probleme mit PowerPDF und Windows7
...


aber du schreibst grad Reportbuilder....
ich besitze den Report Builder Professional Edition von Metaphors in der Version 9.01 ???

erdbeere225 11. Jun 2010 17:24

AW: HTML als PDF ausgeben
 
http://www.est.hi-ho.ne.jp/takeshi_kanno/powerpdf/

ULIK 11. Jun 2010 18:48

AW: Re: HTML als PDF ausgeben
 
Zitat:

Zitat von erich.wanker (Beitrag 1005871)
aber du schreibst grad Reportbuilder....
ich besitze den Report Builder Professional Edition von Metaphors in der Version 9.01 ???

Kann sein, daß das erst ab der 10er standardmäßig dabei ist. Aber ansonsten kannst Du Dir mit den Gnostice Tools helfen.


Grüße,
Uli

idefix2 11. Jun 2010 21:11

AW: HTML als PDF ausgeben
 
Wenn Du eine halbwegs neue Version von Microsoft Office oder von Open Office hast, müsstest Du Dir das HTML Dokument in der Textverarbeitung laden und als PDF abspeichern können.
Für Microsoft ist ein PDF-Addon nötig, das Du gratis von der Microsoft Homepage herunterladen kannst, Open Office hat automatisch die PDF Unterastützung integriert.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:49 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