AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

HTML Drucken mit Printer.Canvas

Ein Thema von wlfmario · begonnen am 31. Mär 2006 · letzter Beitrag vom 1. Apr 2006
Antwort Antwort
wlfmario

Registriert seit: 5. Jan 2005
Ort: Pulheim
115 Beiträge
 
#1

HTML Drucken mit Printer.Canvas

  Alt 31. Mär 2006, 23:54
Hallo zusammen,

ich möchte meine Mails im HTML Format ausdrucken mit meinen eigenen Header oben auf dem Ausdruck.
Jetzt habe ich in einen Tut gefunden wie man HTML Seiten im TWebBrowser ausdruckt, leider werden dann immer zwei Seite gedruckt (Header und HTML).
Es werde auch immer zei Dialoge angezeigt.
Leider finde ich keine gute Hilfe zu WebBrowser1.ExecWB(OLECMDID_PRINT, OLECMDEXECOPT_PROMPTUSER) Wie kann ich jetzt realisieren, das die HTML Seite unter dem Header erscheint ?
Die Seite soll so ausgeduckt werden, wie sie im WebBrowser zu sehen ist.
hier mal mein Code mit dem ich das versuche:
Delphi-Quellcode:
...
...
if (PrintDialog1.Execute) then
  begin
    DateTimeToString(datum, 'dd.mm.yyyy hh:nn:ss', now);
    printer.BeginDoc;
    Printer.Title := 'MailClient - Mail Drucken';
    printer.Canvas.Font.Size := 12;
    Printer.Canvas.TextOut(250, 250, 'MailClient');
    Printer.Canvas.TextOut(printer.PageWidth - 1210, 250, datum);
    printer.Canvas.Font.Size := 10;
    printer.Canvas.Pen.Width := 8;
    printer.Canvas.MoveTo(250, 370);
    printer.Canvas.LineTo(printer.PageWidth - 250, 370);
    Printer.Canvas.TextOut(250, 450, 'Von: ' + Msg.From.Text);
    Printer.Canvas.TextOut(printer.PageWidth - 1650, 450, 'Empfangen: ' +
      DateToStr(Msg.Date) + ' um ' + TimeToStr(Msg.Date));
    Printer.Canvas.TextOut(250, 550, 'An: ' + Msg.Recipients.EMailAddresses);
    Printer.Canvas.TextOut(250, 650, 'Betr: ' + Msg.Subject);
    printer.Canvas.Pen.Width := 8;
    printer.Canvas.MoveTo(250, 800);
    printer.Canvas.LineTo(printer.PageWidth - 250, 800);
    if pos('Content-Type: text/html', msg.Headers.Text) <> 0 then
    begin
      WebBrowser1.ExecWB(OLECMDID_PRINT, OLECMDEXECOPT_PROMPTUSER)
    end
    else
    begin
      for i := 0 to Richedit1.Lines.Count do
        Printer.Canvas.TextOut(250, 950 + (i *
          printer.Canvas.TextHeight(Richedit1.Lines.Strings[i])),
          Richedit1.Lines.Strings[i]);
    end;
    Printer.EndDoc;
  end;
...
...
Mario
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: HTML Drucken mit Printer.Canvas

  Alt 1. Apr 2006, 18:31
Hallo Mario,

wenn du zweimal den PrintDialog siehst, dann deshalb, weil der WebBrowser in seinem eigenen print job druckt. Du darfst deinen Header nicht auf diese Weise drucken, arbeite mit Print Templates.

Grüße vom marabu
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:21 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