打印缩放图像c#



我正在尝试用这段代码打印图像。

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

当图像很小时,它打印得很好,但当它的高分辨率(我有图像992*1403)时,它以错误的尺寸绘制。当我查看PreviewDialog或将其绘制到pdf文件时,它打印得很好,但当我在打印机上打印它时,它打印的尺寸错误。

修复了这个代码的问题:

e.Graphics。DrawImage(img, 0,0, e.p pagessettings . printablearea .)宽度,e.PageSettings.PrintableArea.Height);

只是猜测,但是如果不知道您在什么类型的纸上打印,应用程序如何知道PageBounds呢?

你有没有试过这样设置你的纸张大小:

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

最新更新