由于打印需要镜像,我的思路是,先画文字和图形在new Bitmap()中,
然后将BITMAP,使用RotateFlip方法翻转,再用打印的Graphics 直接输出到打印机中打印。
但是,发现状态不太好,如果我直接输出BITMAP不翻转,然后打印出来效果很好,但是翻转之后,打印效果就差了,
或者直接输出到打印的Graphics中,效果也很好。但是只要翻转了,效果就差了,大家有什么好方法么?

解决方案 »

  1.   

    你说的应该是旋转吧 翻转是翻面的
    不要使用RotateFlip
    Graphics g = Graphics.FromImage(bt);
    Matrix matrix = new Matrix();//旋转矩阵
    matrix.RotateAt(angle, Point pt);//按pt旋转angle角度
    g.Transform = matrix;
    g.DrawImage(myImage, pt.X, pt.Y);
    g.ResetTransform();
    matrix.Dispose();
    g.Dispose();
    bt.save(....);
      

  2.   

    我是这样做的:
    Graphics g = e.Graphics;   //打印的Graphics
    Graphics gImageTemp = Graphics.FromImage(bSaveImage);
    DrawImage(gImageTemp);
    bSaveImage.RotateFlip(RotateFlipType.Rotate180FlipY);   //进行镜像翻转
    g.DrawImage(bSaveImage, 0,0);   //画到打印纸上
    -----------------------------------
    如果,不通过gImageTemp 这个直接画到打印纸上,画出来效果很好,但是画到gImageTemp 这个上面,再画打印纸上,就悲剧了。
      

  3.   

    DPI也有关系呢?如何下手呢?
      

  4.   

    看看你的DrawImage方法是否就已经出现问题了,也就是将RotateFlip这步屏蔽,看前面一步产生的画质。