Thema: Delphi Drucken über Canvas!

Einzelnen Beitrag anzeigen

Benutzerbild von Goldesel
Goldesel

Registriert seit: 22. Nov 2004
Ort: Lübeck
202 Beiträge
 
Delphi 2005 Architect
 
#1

Drucken über Canvas!

  Alt 28. Apr 2006, 19:56
Hallo,
zuerst einmal zur Veranschaulichung mein Source:

Delphi-Quellcode:
     begin
      Lines := 900;
      table3.First;
      printer.BeginDoc;

      printer.Title:='Ausdruck von My- Bank';
      printer.Canvas.Font.Name:='Times New Roman';

      printer.Canvas.Font.Size:=18;
      printer.Canvas.Font.Style:=[fsunderline,fsbold];
      printer.canvas.TextOut(1750,200,'Auszahlungen');
      printer.Canvas.Font.Style:=[];
      printer.Canvas.Font.Size:=14;
      printer.Canvas.TextOut(350,500,'Ausdruck vom : '+datetostr(now));
     end;
   repeat
   while not table3.Eof do
    begin
      druck1:='Kreditinstitut: '+dbtext5.Caption;
      druck2:='Ort: '+dbtext6.caption;
      druck3:='Betrag: '+dbtext7.Caption+'';
      druck4:='Verwendungszweck: '+dbtext8.Caption;
      druck5:='Datum: '+dbtext9.Caption;
      anzahldb:=table3.RecordCount;
      activedb:=table3.RecNo;

      table3.Next;
   
      printer.Canvas.Font.Size:=14;
      printer.Canvas.Font.Style:=[fsunderline];
      printer.Canvas.TextOut(350,lines-150,'Datensatz '+inttostr(activedb)+' von '+inttostr(anzahldb));
      printer.Canvas.Font.Style:=[];

      printer.Canvas.Font.size:=12;
      printer.Canvas.TextOut(350,lines,druck1);
      printer.Canvas.TextOut(350,lines+150,druck2);
      printer.Canvas.TextOut(350,lines+300,druck3);
      printer.Canvas.TextOut(350,lines+450,druck4);
      printer.Canvas.TextOut(350,lines+600,druck5);

    end;
    until
     (table3.RecNo=anzahldb);
     printer.EndDoc;

  lines:=lines+1000;
    if lines>6000 then
     begin;
      printer.NewPage;
      lines:=200;
     end;
Die bisherige Durckfunktion läuft eigentlich ganz gut. Das einzige Problem was ich habe ist, dass ich nur eine Seite ausdrucken kann. Ich möchte aber pro Seite nur 5 Datensätze haben, d.h. wenn eine bestimmte Line erreicht ist soll eine neue Seite gezogen werden und dort weitergedruckt werden. Ich hoffe mein Problem ist einigermaßen verständlich geschildert

Und noch eine Frage am Rande: Wie kann ich dem Dokument einen Dokumentnamen zuordnen, welcher in der Druckerwarteschlange angezeigt wird?


Vielen Dank
Jannik
  Mit Zitat antworten Zitat