Pobieram informacje o rozmiarze strony, wyliczam pozycje marginesów drukarki, rysuję na Printer.Canvas ramkę za Rantagle tuż przy brzegach marginesów.
Poniżej procedura do wyboru drukarki.
Kopiuj
procedure Example_PrintCvS2_Printer();
var _PCvS2: TkPrintCvS2;
begin
frmCvS2.PrintDialog.Copies:= 1;
if not frmCvS2.PrintDialog.Execute then exit;
Printer.Title:='Wydruk';
Printer.BeginDoc;
_PCvS2.Init(Printer);
_PCvS2.SetCanvasSize(Printer, cA4);
SetDane(Printer.Canvas, _PCvS2);
MDrawTest(Printer.Canvas,1,_PCvS2.Canvpx,_PCvS2.Zakrpx);
Printer.EndDoc;
_PCvS2.Init(nil);
_PCvS2.SetCanvasSize(nil, cA4);
SetDane(_PCvS2.BmpPg.Canvas, _PCvS2);
MDrawTest(_PCvS2.BmpPg.Canvas,1,_PCvS2.Canvpx,_PCvS2.Zakrpx);
MDraw(frmCvS2.Image, _PCvS2.BmpPg,Trunc(cA4.Width*cPxLmm),Trunc(cA4.Height*cPxLmm));
FreeAndNil(_PCvS2);
end;
Ok poszukam coś na temat tych 600dpi może coś pominąłem, ale dla PDFa mam:
drukOfsX: 0; drukOfsY: 0;
drukSzer: 4958; drukWys: 7016;
dpi.y: 600; dpi.x: 600;
Lewy: 0;
Gorny: 0;
Prawy: 0;
Dolny: 1;
i dla drukarki:
drukOfsX: 100; drukOfsY: 100;
drukSzer: 4760; drukWys: 6814;
dpi.y: 600; dpi.x: 600;
Lewy: 100;
Gorny: 100;
Prawy: 100;
Dolny: 100;
info o rozdzielczości pobierane za pomocą
// rozdzielczość:
Kopiuj
dpi.y := GetDeviceCaps(aPrinter.Handle, LOGPIXELSY);
dpi.x := GetDeviceCaps(aPrinter.Handle, LOGPIXELSX);
Przejrzałem kilka przykładów na temat druku i nie wiem co jest grane.
@
przed nazwę użytkownika, a on dostanie o tym powiadomienie - np. @Integers; Nie musisz ręcznie wklepywać linków :)@{nazwa użytkownika}