Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Datei drucken (https://www.delphipraxis.net/52678-datei-drucken.html)

scuby 1. Sep 2005 13:56


Datei drucken
 
Hallo zusammen,

es klingt villeicht etwas komisch, aber ich möchte eine datei per Button.click ausdrucken lassen.
Eine Worte vorab:

Zu Beginn lasse ich einige Einträge aus einer datenbank auslesen und diese dann in eine datei (*.htm) einfügen und generieren.

Nach abschluss dieser Generierung möchte ich die datei dann sofort Drucken. Wie ist dies Technisch lösbar ohne erst die datei zu öffnen und dann über datei --> Drucken das ganze zu machen?

Ich würde mich über eine Antwort von euch freuen.

Scuby

dfried 1. Sep 2005 14:02

Re: Datei drucken
 
Müsste vermutlich über "Shellexecute" mit der Operation "print" gehen. Habs aber noch nicht probiert, fiel mir nur so spontan ein.

Gruß
Daniel

scuby 1. Sep 2005 14:39

Re: Datei drucken
 
Ich habe noch nie zuvor mit diesen Drucksachen gearbeitet. Gibt es dafür irgendwo Tutorials oder schon Programmezeilen, die Ihr fertig habt, damit man sich das ganze mal in Ruhe anschauen kann?

JWeis 1. Sep 2005 14:48

Re: Datei drucken
 
Es gibt nen printersetupdialog
und nen printdialog

Delphi-Quellcode:
procedure TForm1.button1Click(Sender: TObject);
begin
  PrinterSetupDialog1.Execute;
end;

procedure TForm1.button2clik(Sender: TObject);
var
  n, m, maxText: word;
begin
  if PrintDialog1.Execute then
  begin
    Printer.Title:= FFileName;
    Printer.BeginDoc;
    {beginn der Druckanweisung}
    m:=0;
    n:=0;
    Printer.NewPage;
    while m<Memo1.Lines.Count do
    begin
      Printer.Canvas.TextOut(50,50+n,Memo1.Lines[m]);
      maxText:= Printer.Canvas.TextHeight(Memo1.Lines[m]);
      Inc(n,maxText);
      if n>= Printer.PageHeight-100 Then
      begin
        Printer.NewPage;
        n:=0;
      end;
      inc(m);
    end;
    {ende der Druckanweisung}
    Printer.EndDoc;
  end;
end;
:dp: :cheers:

scuby 1. Sep 2005 15:19

Re: Datei drucken
 
Hmmm... das sieht doch gar nicht schlecht aus, damit kann ich was anfangen, aber eins noch dazu, wo setze ch denn meinen Filename ein, damit er die Datei komplett druckt ?

marabu 1. Sep 2005 15:59

Re: Datei drucken
 
Hallo scuby,

ich will weder dich noch deine Helfer hier aus dem Konzept bringen, aber eine Frage drängt sich mir auf: Wenn du in deinem Programm ein HTML Dokument erzeugst, um dieses dann zu drucken, warum speicherst du es dann erst noch als Datei? Vielleicht hast du ja dafür bestimmte Gründe, die du hier nicht erläutern wolltest. Wenn nicht, dann könntest du auch eine TWebBrowser-Komponente verwenden, diese mit deinem HTML-Dokument befüllen und dann reicht das hier:

Delphi-Quellcode:
const
  SHOW_UI: true;

begin
  with WebBrowser.Document as IHTMLDocument2 do
    ExecCommand('print', SHOW_UI, null);
end;
Wenn ich daneben liege, dann vergiss einfach alles was ich hier geschrieben habe...

Grüße vom marabu

scuby 7. Sep 2005 13:58

Re: Datei drucken
 
Eigentlich meinte ich:

Wie kann ich die Windowsdruckeigenschaft eines Dokumentes direkt ansteuern?
Alsodas Dokument im ohne es zu öffnen direkt drucken und das ganze dann auf einen Butten in meinem Programm legen?

Hat jemand von euch eine Idee? Habe mich schon im Intenet totgesucht und hoffe nun hier Rat zu findne.

THX
Scuby


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:10 Uhr.

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