打印缩放图像c#

时间:2013-03-11 10:20:16

标签: c# .net

我正在尝试使用此代码打印图像。

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

1 个答案:

答案 0 :(得分:0)

只是一个猜测,但应用程序如何知道PageBounds而不知道您要打印的纸张类型?

您是否尝试使用以下内容将纸张尺寸设置为特定尺寸:

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