2
0
Johann ELSASS 5 жил өмнө
parent
commit
db0e11335a
1 өөрчлөгдсөн 13 нэмэгдсэн , 10 устгасан
  1. 13 10
      lazpaint/dialog/uprint.pas

+ 13 - 10
lazpaint/dialog/uprint.pas

@@ -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);