11. august 2003 - 16:10
Der er
6 kommentarer og
1 løsning
Printer.PageWidth, Printer.PageHeight og papirets størrelse
Printer.PageWidth, Printer.PageHeight og papirets faktiske størrelse.
Jeg har en printer der ikke kan udskrive til kant. Når jeg bruger Printer.Canvas til at udskrive, så har jeg lavet det sådan at der også kommer margin. Men den margin jeg sætter, passer ikke helt.
Hvis jeg ikke sætter nogen margin, så kommer der alligevel en lille margin.
Derfor vil jeg gerne vide, hvordan man finder ud af hvor stor denne "standard-margin" er, så jeg kan sætte min margin så den faktisk passer.
11. august 2003 - 16:51
#3
Ja, det var bare det der skulle til :-)
Hvis du lægger et svar, kan jeg lukke spørgsmålet :-)
Da det i min kode er nemmest at få tallene som "printer-pixels", er jeg nu endt med følgende kode:
type
TMargins = record
Left,
Top,
Right,
Bottom: Real;
end;
procedure GetPrinterMargins(var Margins: TMargins);
var
PhysPageSize: TPoint;
OffsetStart: TPoint;
PageRes: TPoint;
begin
Escape(Printer.Handle, GETPHYSPAGESIZE, 0, nil, @PhysPageSize);
Escape(Printer.Handle, GETPRINTINGOFFSET, 0, nil, @OffsetStart);
PageRes.y := GetDeviceCaps(Printer.Handle, VERTRES);
PageRes.x := GetDeviceCaps(Printer.Handle, HORZRES);
// Top Margin
Margins.Top := OffsetStart.y;
// Left Margin
Margins.Left := OffsetStart.x;
// Bottom Margin
Margins.Bottom := PhysPageSize.y - PageRes.y - OffsetStart.y;
// Right Margin
Margins.Right := PhysPageSize.x - PageRes.x - OffsetStart.x;
end;
11. august 2003 - 17:02
#6
hejhej -> Det er vist forbeholdt mig at sige tak :-)
(Et svar er altid mere værd end de points svarer får, og så er det lige meget om det er 30, 200 eller 2000 points)