C# 毕业证书打印《三》
打印很关键的方法,打印方法DataPrint(),将你要打印的数据信息发送到打印机就可以了,打印机将自动处理。
1 public void DataPrint() 2 { 3 try 4 { 5 PrintDocument pd = new PrintDocument(); 6 PrintDialog pdlg = new PrintDialog(); 7 pd.PrintPage += new PrintPageEventHandler(pd_PrintPage); 8 pdlg.Document = pd; 9 pd.Print(); 10 11 } 12 catch 13 { 14 //选择打印机 15 MessageBox.Show("请选择打印机"); 16 DialogPrint(); 17 } 18 finally 19 { 20 //MessageBox.Show("打印成功"); 21 } 22 }
如果要手动选择打印机
1 PrintDocument pd = new PrintDocument(); 2 PrintDialog pdlg = new PrintDialog(); 3 pd.DefaultPageSettings.PaperSize = new PaperSize("B5", image.Height, image.Width);//定义纸张大小 4 pd.DefaultPageSettings.Landscape = true; //横向 5 pd.PrintPage += new PrintPageEventHandler(pd_PrintPage); 6 pdlg.Document = pd; 7 DialogResult res = pdlg.ShowDialog(); 8 if (res == DialogResult.OK) 9 { 10 pd.Print(); 11 }
打印预览的方法
1 /// <summary> 2 /// 预览打印 3 /// </summary> 4 /// <param name="p_ShowPageSetup"></param> 5 public void Preview(bool p_ShowPageSetup) 6 { 7 try 8 { 9 if (File.Exists(@"123.jpg")) 10 { 11 PrintDocument pd = new PrintDocument(); 12 13 PaperSize ps = new PaperSize("B5", image.Height, image.Width); 14 pd.DefaultPageSettings.PaperSize = ps; 15 pd.DefaultPageSettings.Landscape = true; //横向 16 pd.PrintPage += new PrintPageEventHandler(pd_PrintPage); 17 if (p_ShowPageSetup) 18 { 19 PageSetupDialog pageSetup = new PageSetupDialog(); 20 pageSetup.Document = pd; 21 DialogResult Rc = pageSetup.ShowDialog(); 22 if (Rc == DialogResult.Cancel) 23 { 24 return; 25 } 26 } 27 PrintPreviewDialog previewDialog = new PrintPreviewDialog(); 28 previewDialog.Document = pd; 29 previewDialog.ShowInTaskbar = true; 30 previewDialog.ShowDialog(); 31 32 } 33 34 else 35 { 36 MessageBox.Show("图片不存在!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error); 37 } 38 39 } 40 finally 41 { 42 } 43 }
这里为打印预览的界面加上了图片,通过图片来控制打印的边界,但是这个地方值得注意的是打印机中的尺寸和C#程序中的尺寸的规格不一样,C#中是以图片的像素为基本单位,而打印机中则是以毫米为基本单位,而且像素是不能直接转换为毫米的,所以这个地方就会有问题。我的做法是,先在ps中定好尺寸,然后再将大小和像素统一,这样就没问题了。而到时候打印的具体设置只要在控制面板中将默认设置为横向,大小设置为你证书的大小就行了。
打印解决了,接下来将是数据的存储和信息的读取。敬请期待,谢谢你的关注。。。
原创不易,转载请声明 bindot
https://www.cnblogs.com/bindot/