大家好~小弟遇到点问题~~~printDocument 打印区域如何设置?怎么我在PrintPage下面设置却不起作用?找了一个多星期的信息了~对printDocument打印区域的设置还是没有搞定~~~~~现在想问问在座的~
遇过此类问题的~
麻烦可以告诉下小弟吗?这是在printDocument—PrintPage事件下的部分代码~
            intPaper = Convert.ToInt16(fltPrintY / 2.54);
            paperSize = new System.Drawing.Printing.PaperSize("小票", 56, intPaper);
            pageSet = new PageSettings();
            pageSet.Landscape = false; //打印方向为纵向
            pageSet.Margins.Top = 0; //设置顶部页边距 
            pageSet.Margins.Left = 1; //设置左部页边距
            pageSet.PaperSize = paperSize;//设置为指定的纸张类型
            printDocument.DefaultPageSettings = pageSet;//当前打印页面为上面设置的打印页面
            e.HasMorePages = false;
可是打印出来的结构~print后没得出想要的区域效果~

解决方案 »

  1.   

     //初始化要预览窗口 
                PrintPreviewDialog ppvw = new PrintPreviewDialog();
                //获取要预览的文档 
                ppvw.DialogResult = true;
                ppvw.Document = objDocument;
                ppvw.Width = 800;
                ppvw.Height = 600;
                //显示预览窗口 
                ppvw.ShowDialog();
    用预览看看
    你写的顶部为0,左边距为1,所以看不出效果,你把边距调大点。
      

  2.   

    也许我表达意思错了吧~
    我现在想做的是个pos小票打印~
    打印56mm宽的小票~
    长度是可以变的~
    我在printdocument控件的printpage事件下排版需要打印出来的内容~
    内容是出来了~
    可是小票的宽长却没有得到控制~
    留了很多空白的地方
    可是我已经在此事件下写了纸张大小的控制代码~
                intPaper = Convert.ToInt16(fltPrintY / 2.54);
               paperSize = new System.Drawing.Printing.PaperSize("小票", 2, intPaper);
               pageSet = new PageSettings();
               pageSet.Landscape = false; //打印方向为纵向
                pageSet.Margins.Top = 0; //设置顶部页边距 
                pageSet.Margins.Left = 1; //设置左部页边距
                pageSet.PaperSize = paperSize;//设置为指定的纸张类型
                printDocument.DefaultPageSettings = pageSet;//当前打印页面为上面设置的打印页面
                e.HasMorePages = false;
    打印预览的时候~
    可是这段代码不起作用
    知情人士能否帮我看看是不是代码的问题?
      

  3.   

    你调试一下,看那个size是否每次都是固定的,你改下,看他还是不是和前面的一样。
      

  4.   

    在你的打印事件里直接绘制一个小的钜形区域e.Graphics.DrawString("要打印的东东", new Font("宋体", 12), Brushes.Black, new RectangleF(20, 20, 200, 220));
      

  5.   

    angelo1011 的意思是:
    纸张的格式设置好了,但是用C#里的printDocument.print()打印出来的效果不是他自定义的纸张,是默认的A4纸格式打印出来的效果,我也关注中,请各位大客帮帮
      

  6.   

    如需要阅读该回复,请登录或注册CSDN!