Ich würde die auf Printer.Canvas der Reihe nach ausdrucken.
Einfacher sind Komponenten, die's im Netz gibt, die zeilenweise drucken können.
Mein Vorschlag: (so ungefähr)
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| uses Printers;
Printer.BeginDoc; y := Round(0.1 * Printer.PageHeight); for i := 0 to Self.clbList.Items.Count - 1 do if Self.clbList.Items[i].Checked then begin Printer.Canvas.DrawText(10,y,Self.clbList.Items[i]); Inc(y, Printer.Canvas.TextHeight('Test')); if y >= Round(0.9 * Printer.PageHeight) then begin y := Round(0.1 * Printer.PageHeight); Printer.NewPage; end; end; Printer.EndDoc; |
Wird wohl noch nicht ganz korrekt sein, aber die Idee, die dahintersteckt, sollte klar sein...