2017-06-21 192 views
-1

我一直在尝试通过标签打印机打印条形码图像。但使用SATO CG408打印机打印的图像非常小。这是目前的代码。C#打印文档打印图像

static void Main(string[] args) 
    { 
     try 
     { 
      PrintDocument pd = new PrintDocument(); 
      pd.DefaultPageSettings.PaperSize = new System.Drawing.Printing.PaperSize("Custom", 100, 77); 

      //We want potrait. 
      pd.DefaultPageSettings.Landscape = false; 
      pd.PrintPage += PrintPage; 
      pd.Print(); 
     } 
     catch (Exception ex) 
     { 
      Console.WriteLine(ex.Message); 
      Console.ReadLine(); 
     } 
    } 

    private static void PrintPage(object o, PrintPageEventArgs e) 
    { 
     //System.Drawing.Image img = System.Drawing.Image.FromFile(@"c:\test\test.png"); 
     //img.RotateFlip(RotateFlipType.Rotate90FlipNone); 
     //e.Graphics.DrawImage(img,0,0); 

     int printHeight = 450; 
     int printWidth = 400; 
     int leftMargin = 20; 
     int rightMargin = 0; 
     System.Drawing.Image img = System.Drawing.Image.FromFile(@"c:\test\test.png"); 
     img.RotateFlip(RotateFlipType.Rotate90FlipNone); 

     e.Graphics.DrawImage(img, new Rectangle(leftMargin, rightMargin, printWidth, printHeight)); 
    } 

不知道为什么图像显示很小。正在打印的图像在不同的服务器上生成。图像大小为2480px×1748px。

enter image description here

能有一个人,请帮助。在过去几天试图解决这个问题。提前致谢。

回答

0

也许你应该设置你的方向...... 试试这个:

pd.DefaultPageSettings.Landscape = true; 
+0

已经尝试过,它也没有工作。 – dogwasstar

0

尝试删除利润

int leftMargin = 0; 
int rightMargin = 0; 

,并检查imgage比:2480px/1748px〜1.419,x 400像素/ 450像素〜 0889。因此,也许尝试:

int printHeight = 420; 
int printWidth = 596; 
+0

试过了,仍然没有工作:( – dogwasstar

0

问题是打印机的纸张尺寸设置有误。这就是为什么它印刷得如此之小。现在感觉很傻。感谢所有的帮助。