1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
procedure Tformgrille.ButtonimprimeficheClick(Sender: TObject);
var MyPrinter : TPrinter;
myBitMap : TBitMap;
begin
myBitMap := TBitMap.Create; // creons un bitmap
myBitMap.Width := formgrille.Width; // de la taille
myBitMap.Height := formgrille.Height; // de formgrille
formgrille.BorderStyle:=bsNone;
formgrille.PaintTo(myBitMap.Canvas, 0, 0); // remplissons canvas du bitmap avec le canvas de form
formgrille.BorderStyle:=bsSingle;
//
MyPrinter := Printer; // déclarons une imprimante
MyPrinter.BeginDoc; // débutons la création du document à imprimer
{*
on va copier dans une zone d'impression égale à la moitié de la hauteur et largeur du format du papier (sinon notre formgrille prend toute la feuille, c'est trop) l'ensemble du canvas de notre bitmap.
en jouant avec la taille de myprinter.canvas (0,0,x,y) on imprime plus ou moins grand. Pour avoir pleine page on remplacera
RoundToInt(myPrinter.PaperSize.Width/2) par myPrinter.PaperSize.Width
et feront de même avec PaperSize.Height
A vous de rectifier en fonction de la taille voulue
*}
myPrinter.Canvas.CopyRect(Classes.Rect(0, 0, RoundToInt(myPrinter.PaperSize.Width/2), RoundToInt(myPrinter.PaperSize.Height/2)),
myBitMap.Canvas, Classes.Rect(0, 0, myBitMap.Width, myBitMap.Height));
MyPrinter.EndDoc; // fin de la creation de document ce qui lance l'impression
myBitMap.Free; // detruisons notre bitmap devenu inutile
end; |
Partager