Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
打印缩放图像c#_C#_.net - Fatal编程技术网

打印缩放图像c#

打印缩放图像c#,c#,.net,C#,.net,我正在用这个代码打印图像 private void Print() { PrintDocument printDocument = new PrintDocument(); printDocument.PrintPage += PrintDocument_PrintPage; PrintPreviewDialog printDialog = new PrintPreviewDialog(); printDi

我正在用这个代码打印图像

   private void Print()
     {
         PrintDocument printDocument = new PrintDocument();
         printDocument.PrintPage += PrintDocument_PrintPage;

         PrintPreviewDialog printDialog = new PrintPreviewDialog();
         printDialog.Document = printDocument;

         DialogResult result = printDialog.ShowDialog();
         if (result == DialogResult.OK) printDocument.Print();

         printDocument.PrintPage -= PrintDocument_PrintPage;
     }

     private void PrintDocument_PrintPage(object sender, PrintPageEventArgs e)
     {
      //e.Graphics.DrawImage(img, e.PageBounds.X, e.PageBounds.Y);
        e.Graphics.DrawImage(img, e.PageBounds.X, e.PageBounds.Y, 
             e.PageBounds.Width, e.PageBounds.Height);
     }
当图像很小时,它可以很好地打印,但当它的hi-rez(我有图像992*1403)时,它会以错误的大小绘制。 当我查看
PreviewDialog
或将其绘制到pdf文件时,它打印得很好,但当我在打印机上打印时,它打印的大小不正确

修复了此代码的问题:


e、 Graphics.DrawImage(img,0,0,e.PageSettings.PrintableArea.Width,e.PageSettings.PrintableArea.Height)

只是猜测,但应用程序如何知道
页面边界
,而不知道您打印的是哪种类型的纸张

您是否尝试过使用以下方法将纸张大小设置为特定大小:

printDocument .DefaultPageSettings.PaperSize = 
                new PaperSize("Custom", someWidth, someHeight);