zoukankan      html  css  js  c++  java
  • 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中定好尺寸,然后再将大小和像素统一,这样就没问题了。而到时候打印的具体设置只要在控制面板中将默认设置为横向,大小设置为你证书的大小就行了。

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

  • 相关阅读:
    C++头文件编译问题
    Windows下Critical Section、Event、Mutex、Semaphores区别
    MFC OnCtlColor函数用来改变控件颜色
    Ctreectrl +CImageList应用
    20091113 08:37 实现文件读写操作的几种方法
    在网上看到这篇文章还不错,OnDrawItem与DrawItem讨论
    Mysql全文搜索match…against的用法
    Django and fulltext search
    Feed DB 搜博客 一个博客搜索引擎
    通过扩展Django数据库API支持全文搜索
  • 原文地址:https://www.cnblogs.com/bindot/p/zsdy3.html
Copyright © 2011-2022 走看看