![]() |
zeilenweise drucken
Hi,
ich muß Listen drucken. Und zwar auf einen Bondrucker Epson TMT-88III. Standardmäßig hat der nur 40 Zeichen / Zeile. Das hier gefällt mir jetzt aber nicht so recht :
Delphi-Quellcode:
Kann man das jetzt nicht verallgemeinern, also ohne die absoluten Pixel-Angaben ? Am liebsten wäre es mir mit writeln zu arbeiten, aber dann gibt es Probleme im Netzwerk mit Freigabenamen usw. Und noch kurze Nebenfrage : wieso zeigt mir die showmessage nichts an ? :shock:
if PrintDialog1.Execute then begin
printer.BeginDoc; printer.Canvas.Font.Size := 8; showmessage (printer.Printers.Names[1]); 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.EndDoc; end; |
Re: zeilenweise drucken
Mach es doch mit einem TRichEdit feld.
Da kann man dann einfach Print machen. |
Re: zeilenweise drucken
Zitat:
|
Re: zeilenweise drucken
Und wo wir schon dabei sind: Die Zeilenhöhe bekommst du mit
![]() |
Re: zeilenweise drucken
Achja, und Dein Showmessage zeigt immer den 2. installierten Drucker an. Wenn Du den Drucker anzeigen willst, der im PrintDialog ausgewählt und auf dem gedruckt wird, musst Du es so machen:
Delphi-Quellcode:
showmessage(printer.printers[printer.printerindex])
|
Re: zeilenweise drucken
Liste der Anhänge anzeigen (Anzahl: 1)
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:
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 !
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; |
Re: zeilenweise drucken
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:34 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