Browse Source

ComPDFKit.Demo(win) - 修复打印问题, 自适应的预览和尺寸的打印效果

weixiangjie 3 weeks ago
parent
commit
1d906890b4

+ 4 - 0
Demo/Examples/Compdfkit.Controls/Printer/PrintHelper.cs

@@ -416,6 +416,8 @@ namespace ComPDFKit.Controls.Printer
                     {
                         using (Bitmap resizedBitmap = ResizeBitmap(bitmap, 100))
                         {
+                            realBound.Width = (int)(cSize.width * 1.4);
+                            realBound.Height = (int)(cSize.height * 1.4);
                             if (isManualDuplex && PrintIndex % 2 == 1 && printSettingsInfo.DuplexPrintMod == DuplexPrintMod.FlipShortEdge)
                             {
                                 resizedBitmap.RotateFlip(RotateFlipType.RotateNoneFlipY);
@@ -462,6 +464,8 @@ namespace ComPDFKit.Controls.Printer
                             float aspectRatioResizedBitmap = (float)resizedBitmap.Width / resizedBitmap.Height;
                             float aspectRatioRealBound = (float)realBound.Width / realBound.Height;
 
+                            realBound.Width = (int)(cSize.width * 1.4);
+                            realBound.Height = (int)(cSize.height * 1.4);
                             realBound.Width = (int)(realBound.Width * (printSettingsInfo.PrintMode as SizeModeInfo).Scale / 100.0); 
                             realBound.Height = (int)(realBound.Height * (printSettingsInfo.PrintMode as SizeModeInfo).Scale / 100.0);
 

+ 2 - 2
Demo/Examples/Compdfkit.Controls/Printer/PrintPreviewControl.xaml.cs

@@ -352,12 +352,12 @@ namespace ComPDFKit.Controls.PDFControl
                         if (printSettingsInfo.PrintOrientation == PageOrientation.Portrait)
                         {
                             resizedWidth = (int)printSettingsInfo.ActualWidth;
-                            resizedHeight = (int)(printSettingsInfo.ActualWidth / bitmap.Width * bitmap.Height);
+                            resizedHeight = (int)printSettingsInfo.ActualHeight;
                         }
                         else
                         {
                             resizedHeight = (int)printSettingsInfo.ActualWidth;
-                            resizedWidth = (int)(printSettingsInfo.ActualWidth / bitmap.Height * bitmap.Width);
+                            resizedWidth = (int)printSettingsInfo.ActualHeight;
                         }
                     }