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         }
DataPrint

如果要手动选择打印机

 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         }
DataPreView

这里为打印预览的界面加上了图片,通过图片来控制打印的边界,但是这个地方值得注意的是打印机中的尺寸和C#程序中的尺寸的规格不一样,C#中是以图片的像素为基本单位,而打印机中则是以毫米为基本单位,而且像素是不能直接转换为毫米的,所以这个地方就会有问题。我的做法是,先在ps中定好尺寸,然后再将大小和像素统一,这样就没问题了。而到时候打印的具体设置只要在控制面板中将默认设置为横向,大小设置为你证书的大小就行了。

打印解决了,接下来将是数据的存储和信息的读取。敬请期待,谢谢你的关注。。。

原文地址:https://www.cnblogs.com/bindot/p/zsdy3.html