I can't using the printer. Functions works nice in windows, but not in Mojave (cocoa).
Example :
if DlgPrint.Execute then
begin
LPrinter := Printer;
LPrinter.Copies := DlgPrint.Copies;
try
LBitMap := TBitMap.Create;
nw := LPrinter.PaperSize.Width;
nh := LPrinter.PaperSize.Height;
KeepAspectRatio(pnlResultat.Width,pnlResultat.Height,nw,nh);
LBitMap.Width := pnlResultat.Width;
LBitMap.Height := pnlResultat.Height;
LBitMap.Canvas.Brush.Color := clWhite;
LBitMap.Canvas.Pen.Color :=ClWhite;
LBitMap.Canvas.Pen.Width:=2;
LBitMap.Canvas.Rectangle(0, 0, LBitMap.Width, LBitMap.Height);
LBitMap.Canvas.Pen.Color :=ClWhite;
pnlResultat.Color:= clWhite;
pnlResultat.PaintTo(LBitMap.Canvas, 0, 0);
LbitMap.Canvas.draw(0,0,Pnlresultat.Canvas);
Lbitmap.savetofile(extractfilepath(application.exename)+'georges.bmp');
pnlResultat.Color:= clDefault;
LPrinter.BeginDoc;
// LPrinter.Title := 'Un titre';
LPrinter.Canvas.CopyRect(Classes.Rect(0, 480, nw, 480+nh),
LBitMap.Canvas, Classes.Rect(0, 0, LBitMap.Width, LBitMap.Height));
finally
LPrinter.EndDoc;
LBitMap.Free;
end;
end;
end;
The BMP image is empty, but only in Cocoa, not in windows ! Print preview is empty in cocoa....
A solution ?
Thank you