|
@@ -415,16 +415,19 @@ begin
|
|
|
try
|
|
|
FPrintTransform := AffineMatrixScale(Printer.XDPI/72, Printer.YDPI/72);
|
|
|
Printer.BeginDoc;
|
|
|
- marTopLeft := FPrintTransform*unrotatedMarginTopLeftInPoints;
|
|
|
- marBottomRight := FPrintTransform*(paperSizeInPoints - unrotatedMarginBottomRightInPoints);
|
|
|
- area := rect(round(marTopLeft.x),round(marTopLeft.y),round(marBottomRight.x),round(marBottomRight.y));
|
|
|
- Printer.Canvas.ClipRect := area;
|
|
|
- Printer.Canvas.Clipping := true;
|
|
|
- imgTopLeft := FPrintTransform*FImagePos;
|
|
|
- imgBottomRight := FPrintTransform*(FImagePos+FImageSize);
|
|
|
- Printer.Canvas.StretchDraw(rect(round(imgTopLeft.x),round(imgTopLeft.y),
|
|
|
- round(imgBottomRight.x),round(imgBottomRight.y)), Instance.Image.RenderedImage.Bitmap);
|
|
|
- Printer.Canvas.Clipping := false;
|
|
|
+ if not Instance.Image.RenderedImage.Empty then
|
|
|
+ begin
|
|
|
+ marTopLeft := FPrintTransform*unrotatedMarginTopLeftInPoints;
|
|
|
+ marBottomRight := FPrintTransform*(paperSizeInPoints - unrotatedMarginBottomRightInPoints);
|
|
|
+ area := rect(round(marTopLeft.x),round(marTopLeft.y),round(marBottomRight.x),round(marBottomRight.y));
|
|
|
+ Printer.Canvas.ClipRect := area;
|
|
|
+ Printer.Canvas.Clipping := true;
|
|
|
+ imgTopLeft := FPrintTransform*FImagePos;
|
|
|
+ imgBottomRight := FPrintTransform*(FImagePos+FImageSize);
|
|
|
+ Printer.Canvas.StretchDraw(rect(round(imgTopLeft.x),round(imgTopLeft.y),
|
|
|
+ round(imgBottomRight.x),round(imgBottomRight.y)), Instance.Image.RenderedImage.Bitmap);
|
|
|
+ Printer.Canvas.Clipping := false;
|
|
|
+ end;
|
|
|
Printer.EndDoc;
|
|
|
MessagePopup(rsOkay, 4000);
|
|
|
inc(FPrintCount);
|