Thema: Delphi zeilenweise drucken

Einzelnen Beitrag anzeigen

Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#6

Re: zeilenweise drucken

  Alt 18. Sep 2005, 17:16
Gut, Printerindex muß das sein, um den Drucker anzuzeigen. Aber man sehe sich mal den Anhang an, der mit folgendem Source erzeugt wurde :

Delphi-Quellcode:
procedure TForm1.FormActivate(Sender: TObject);
begin
  Listbox1.Items := printer.printers;
  if PrintDialog1.Execute then begin
    printer.BeginDoc;
    printer.Canvas.Font.Size := 6;
showmessage(printer.printers[printer.printerindex]);
    printer.Canvas.TextOut(1,1,'12345678901234567890123456789012345678901234567890');
    printer.Canvas.TextOut(1,31,'Zeile 2');
    printer.Canvas.TextOut(1,61,'Zeile 3');
    printer.Canvas.TextOut(1,91,'Zeile 4');
    printer.Canvas.Font.Size := 8;
    printer.Canvas.TextOut(1,100,'12345678901234567890123456789012345678901234567890');
    printer.Canvas.TextOut(1,131,'Zeile 2');
    printer.Canvas.TextOut(1,161,'Zeile 3');
    printer.Canvas.TextOut(1,191,'Zeile 4');
    printer.Canvas.Font.Size := 10;
    printer.Canvas.TextOut(1,200,'12345678901234567890123456789012345678901234567890');
    printer.Canvas.TextOut(1,231,'Zeile 2');
    printer.Canvas.TextOut(1,261,'Zeile 3');
    printer.Canvas.TextOut(1,291,'Zeile 4');
    printer.Canvas.Font.Size := 12;
    printer.Canvas.TextOut(1,300,'12345678901234567890123456789012345678901234567890');
    printer.Canvas.TextOut(1,331,'Zeile 2');
    printer.Canvas.TextOut(1,361,'Zeile 3');
    printer.Canvas.TextOut(1,391,'Zeile 4');
    printer.EndDoc;
  end;
end;
Unter Windows sieht die Sache ganz anders aus, als unter DOS. Die Festlegung auf Zeichen/Zeile gilt da nicht. Das Ziel ist nun, eine Druckbreite von 48 Zeichen/Zeile zu erreichen (wegen anderer Drucker notwendig). Allerdings sieht man, daß die Zeilenhöhe alles vermasselt, sofern sie in Abhängigkeit von der Druckbreite gesetzt wird. Wegen diverser Drucker will ich nun allerdings auch nicht jeden Drucker einzeln anpassen. Was ich brauche ist einfach zeilenweise zu drucken mit max. 48 Zeichen. Da es sich um Endlosdrucker handelt spielen auch die Seiten keine Rolle. Die gibts nicht !
Miniaturansicht angehängter Grafiken
scan0101_360.jpg  
Gruß
Hansa
  Mit Zitat antworten Zitat