Пример #1
0
        private void KopSoftPrint_Load(object sender, EventArgs e)
        {
            string sDefault = printDocument.PrinterSettings.PrinterName; //设置默认打印机名

            foreach (string sPrint in PrinterSettings.InstalledPrinters) //获取所有打印机名称
            {
                cbPrint.Items.Add(sPrint);
                if (sPrint == sDefault)
                {
                    cbPrint.SelectedIndex = cbPrint.Items.IndexOf(sPrint);
                }
            }


            try
            {
                PageMargins = int.Parse(tbPageMargins.Text);//页面边距
                PagerSetting.PagePadding = (int)PagerSetting.MillimeterToPixel(panel1.Handle, PageMargins, 1);

                PageWidth  = int.Parse(tbPageWidth.Text);
                PageHeight = int.Parse(tbPageHeight.Text);
                if (PageWidth > 0 && PageHeight > 0)//进行尺码单位毫米(mm)转换成像素(Px)
                {
                    PagerSetting.PageHeight = (int)PagerSetting.MillimeterToPixel(panel1.Handle, PageHeight, 2);
                    PagerSetting.PageWidth  = (int)PagerSetting.MillimeterToPixel(panel1.Handle, PageWidth, 1);
                }

                //重绘pager纸张
                PageLayer pl = new PageLayer(PagerSetting.PageWidth, PagerSetting.PageHeight, PagerSetting.PagePadding);
                //先把旧纸张去掉
                if (panel1.Controls.Count > 0)
                {
                    for (int i = 0; i < panel1.Controls.Count; i++)
                    {
                        if (((ImageLayerBase)panel1.Controls[i]).layerType == LayerType.Paper)
                        {
                            panel1.Controls.RemoveAt(i);
                            break;
                        }
                    }
                }
                panel1.Controls.Add(pl);
                PagerSetting.IsPagerLayerCreated = true;

                //计算控件起始坐标
                int startX = (int)((panel1.Width - PagerSetting.PageWidth) / 2);
                int startY = (int)((panel1.Height - PagerSetting.PageHeight) / 2);
                pl.Left  = startX;
                pl.Top   = startY;
                m_startX = startX + PagerSetting.PagePadding;
                m_startY = startY + PagerSetting.PagePadding;

                lbMessage.Text = "设置成功,纸张尺寸" + PagerSetting.PageWidth + "*" + PagerSetting.PageHeight + "px 页面边距" + PagerSetting.PagePadding + "px";
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
Пример #2
0
        private void tbPageHeight_TextChanged(object sender, EventArgs e)
        {
            try
            {
                PageMargins = int.Parse(tbPageMargins.Text);//页面边距
                PagerSetting.PagePadding = (int)PagerSetting.MillimeterToPixel(panel1.Handle, PageMargins, 1);

                PageWidth  = int.Parse(tbPageWidth.Text);
                PageHeight = int.Parse(tbPageHeight.Text);
                if (PageWidth > 0 && PageHeight > 0)//进行尺码单位毫米(mm)转换成像素(Px)
                {
                    PagerSetting.PageHeight = (int)PagerSetting.MillimeterToPixel(panel1.Handle, PageHeight, 2);
                    PagerSetting.PageWidth  = (int)PagerSetting.MillimeterToPixel(panel1.Handle, PageWidth, 1);
                }

                //重绘pager纸张
                PageLayer pl = new PageLayer(PagerSetting.PageWidth, PagerSetting.PageHeight, PagerSetting.PagePadding);
                //先把旧纸张去掉
                if (panel1.Controls.Count > 0)
                {
                    for (int i = 0; i < panel1.Controls.Count; i++)
                    {
                        if (((ImageLayerBase)panel1.Controls[i]).layerType == LayerType.Paper)
                        {
                            panel1.Controls.RemoveAt(i);
                            break;
                        }
                    }
                }
                panel1.Controls.Add(pl);
                PagerSetting.IsPagerLayerCreated = true;

                //计算控件起始坐标
                int startX = (int)((panel1.Width - PagerSetting.PageWidth) / 2);
                int startY = (int)((panel1.Height - PagerSetting.PageHeight) / 2);
                pl.Left  = startX;
                pl.Top   = startY;
                m_startX = startX + PagerSetting.PagePadding;
                m_startY = startY + PagerSetting.PagePadding;

                lbMessage.Text = "设置成功,纸张尺寸" + PagerSetting.PageWidth + "*" + PagerSetting.PageHeight + "px 页面边距" + PagerSetting.PagePadding + "px";
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }