Du skriver direkte på printerens canvas. Noget med absolutte koordinater og den slags. Jeg har en - godtnok ikke særlig køn - unit der forsøger at indkapsle dette i nogle smartere funktioner. Skal jeg se om jeg kan finde dem til dig?
Alternativt kan du bruge en lille rutine der skiver et bestemt sted på siden.
Lav en procedure der f.eks. hedder LPrint.
procedure TForm1.Lprint(X, Y: Real; Txt: String); var // Print X mm hen og Y mm ned. Tx, Ty: LongInt; // Tx pixels hen og Ty pixels ned. begin Tx := Round((X * GetDeviceCaps(Printer.Handle, Logpixelsx)) * 10 / 254); Ty := Round((Y * GetDeviceCaps(Printer.Handle, Logpixelsy)) * 10 / 254); Printer.Canvas.TextOut(Tx, Ty, Txt); end;
Her udskriver jeg fra en TListBox.
Printer.BeginDoc; Linie := 10; // Vi starter 10 mm nede på siden. LinieHojde := 8; for X := 0 to ListBox1.Items.Count - 1 do begin ---> LPrint(16, Linie, Copy(ListBox1.Items[X], 0, 80)); // 16 mm hen og Linie mm ned. Linie := Linie + LinieHojde; if Linie > Sidehojde then begin Newpage; Linie := 10; end; end; Printer.EndDoc;
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.