Procedure TForm1.Imprime_DVD_Normal; Var DimX,DimY:integer; R:Trect; Const Marge:Integer=25; LongueurCoupe:Integer=50; Begin {On calcul les dimmension de l'image pour l'imprimante} DimX:=round((18.3 * Scale)+Marge+LongueurCoupe); DimY:=round((27.4 * Scale)+ Marge+LongueurCoupe); {On crée une rgion de ses dimensions} R := Rect(Marge+LongueurCoupe, Marge+LongueurCoupe,DimX,DimY); { début de l'impression } Printer.BeginDoc; {Imprime trait de coupe haut gauche} Printer.Canvas.MoveTo(Marge+LongueurCoupe,Marge); Printer.Canvas.LineTo(Marge+LongueurCoupe,LongueurCoupe + Marge); Printer.Canvas.LineTo(Marge,LongueurCoupe + Marge); {Imprime trait de coupe Droit} Printer.Canvas.MoveTo(DimX,Marge); Printer.Canvas.LineTo(DimX,Marge+LongueurCoupe); Printer.Canvas.LineTo(DimX+LongueurCoupe,Marge+LongueurCoupe); {Imprime l'image} Printer.Canvas.StretchDraw(r,Image2.Picture.Graphic); {Imprime trait de coupe bas gauche} Printer.Canvas.MoveTo(Marge,DimY); Printer.Canvas.LineTo(Marge+LongueurCoupe,DimY); Printer.Canvas.LineTo(Marge+LongueurCoupe,DimY+LongueurCoupe); {Imprime trait de coupe bas droit} Printer.Canvas.MoveTo(DimX+LongueurCoupe,DimY); Printer.Canvas.LineTo(DimX,DimY); Printer.Canvas.LineTo(DimX,DimY+LongueurCoupe); Printer.EndDoc; { fin de l'impression } End;
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questiontype TPrinter = class(TPrinter) private { Déclarations privées} ..... function GetQuality : Short; procedure SetQuality(Value : Short); protected { Déclarations protégées} ......... public { Déclarations publiques} ........ published { Déclarations publiées} ........ property Quality : Short read GetQuality Write SetQuality; end; implementation function TPrinter.GetQuality: Short; begin GetPrinterIndex; if DeviceMode = 0 then RaiseError(SInvalidPrinterOp); result := DevMode^.dmPrintQuality; end; procedure TPrinter.SetQuality(Value: Short); begin CheckPrinting(False); GetPrinterIndex; if DeviceMode = 0 then RaiseError(SInvalidPrinterOp); SetState(psNoHandle); DevMode^.dmPrintQuality := Value; DevMode^.dmYResolution := Value; end;
Scale := Printer.Quality / 2.54;
Marge := Round(0.2 * Scale); //2 mm LongueurCoupe =:Round(0.3 * Scale); //3 mm
{Récup des dpi de l'imprimante, et on les convertit en ppc(entimètre)} ScaleX := GetDeviceCaps(Printer.Handle, logPixelsX) / 2.54; ScaleY := GetDeviceCaps(Printer.Handle, logPixelsY) / 2.54; {On calcul les dimmension de l'image pour l'imprimante} DimX:=round((18.3 * ScaleX)+Marge+LongueurCoupe); DimY:=round((27.4 * ScaleY)+ Marge+LongueurCoupe);