打印机的纸是特制的,宽7cm,高10.2cm,我用winForm打印,在A4纸上面正好,但是到那个特制的打印机上面,选择特制的比例,却缩小了!
我做了一张图片,是高7cm,宽10.2cm的,我把图片做背景了,然后按照图片的比例打出来的?问题是处在这里吗?请问大虾们,我要怎么改?

解决方案 »

  1.   

    需要自定义纸张...int _Width=Zgke.PrintStudio.PrintTool.GetSizePoint(70);
                
                int _Height =Zgke.PrintStudio.PrintTool.GetSizePoint(102);            printDocument1.DefaultPageSettings.PaperSize = new System.Drawing.Printing.PaperSize("Customer", _Width, _Height);
                printPreviewDialog1.Document = printDocument1;
                printDocument1.PrintPage += new System.Drawing.Printing.PrintPageEventHandler(printDocument1_PrintPage);
                printPreviewDialog1.Show();
     /// <summary>
            /// 毫米转换单位像素
            /// </summary>
            /// <param name="MM"></param>
            /// <returns></returns>
            public static int GetSizePoint(int MM)
            {
                return (int)((MM / 25.4) * 100);
            }
      

  2.   

    printDocument1.DefaultPageSettings.PaperSize = new System.Drawing.Printing.PaperSize("Customer", _Width, _Height);
    这儿"customer"是什么参数?是我的panel吗?
      

  3.   

      /// <summary>
            /// 数据源中的数据可以分多少页打印
            /// </summary>
            int pages = 0;
            private PrintDocument LoadPrintSetting()
            {
                ///计算出总面数
                pages = datasource.Rows.Count % pagerows == 0 ? datasource.Rows.Count / pagerows : datasource.Rows.Count / pagerows + 1;
                //指定数据源
                this.Items.DataSource = datasource;
                //指定行高
                this.Items.RowsHeight = rowheight;
                //指定每页有多少条记录
                this.Items.PageRowsCount = pagerows;
                PrintDocument pd = new PrintDocument();
                //自定义页面的大小
                PaperSize ps = new PaperSize("MyPage", this.Width, this.Height);
                pd.DefaultPageSettings.PaperSize = ps;
                pd.PrinterSettings.PrinterName = printerConfig.PrintName;
                pd.PrinterSettings.Copies = (short)printerConfig.Copies;
                //使用自定义页面设置
                pd.DefaultPageSettings.PaperSize.RawKind = 256;
                pd.PrintPage += new PrintPageEventHandler(pd_PrintPage);
                //页码计数器清零
                currentpage = 1;
                return pd;
     
            }blog.csdn.net/dunao到我的博客上可以下载到全部的源程序
      

  4.   

    可能和你打印机的DPI有关系 换成300看看
      

  5.   

    /// <summary> 
            /// 毫米转换单位像素 
            /// </summary> 
            /// <param name="MM"> </param> 
            /// <returns> </returns> 
            public static int GetSizePoint(int MM) 
            { 
                return (int)((MM / 25.4) * 203); 
            }看看效果
      

  6.   

    "Customer" 没什么意思 只是自己定义一个纸张类型的名