zoukankan      html  css  js  c++  java
  • 一段简单的打印代码(c#)

      

    代码
     1 //数据流   
     2 System.IO.StringReader sr;
     3       //要打印的字符串
     4         private void redstr()
     5         {
     6             StringBuilder ojbbulider = new StringBuilder();
     7             ojbbulider.Append("\n");
     8             ojbbulider.Append ("测试1");
     9             ojbbulider.Append("测试2");
    10             ojbbulider.Append("------------------------------");
    11             ojbbulider.Append("测试3");
    12             ojbbulider.Append("\n");
    13             sr = new System.IO.StringReader(ojbbulider.ToString());
    14         }
    15         //打印方法
    16         private void button1_Click(object sender, EventArgs e)
    17         {
    18             try
    19             {
    20                 if (printDialog1.ShowDialog() == DialogResult.OK)
    21                 {
    22                     printDocument1.Print();
    23                 }
    24             }
    25             catch (Exception ex)
    26             {
    27                 MessageBox.Show("打印时出错" + ex.Message.ToString().Trim());
    28             }
    29         }
    30 
    31         //打印预览
    32         private void button2_Click(object sender, EventArgs e)
    33         {
    34             try
    35             {
    36                
    37                 printPreviewDialog1.ShowDialog();
    38             }
    39             catch (Exception ex)
    40             {
    41                 MessageBox.Show("预览时出错" + ex.Message.ToString().Trim());
    42             }
    43         }
    44 
    45         //打印设置
    46         private void button3_Click(object sender, EventArgs e)
    47         {
    48             try
    49             {
    50                 pageSetupDialog1.ShowDialog();
    51             }
    52             catch (Exception ex)
    53             {
    54                 MessageBox.Show("设置时出错" + ex.Message.ToString().Trim());
    55             }
    56         }
    57         
    58         private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
    59         {
    60             Graphics objgraphics = e.Graphics;
    61             e.Graphics.DrawString("测试"new Font(new FontFamily("宋体"), 10F), Brushes.Black, 102);
    62             redstr();
    63             Font ziti = new Font(new FontFamily("宋体"), 10F);
    64             //行高
    65             float h = ziti.GetHeight(objgraphics);
    66             //每一面的行数
    67             float hangshu = (int)(e.MarginBounds.Height/h);
    68             float left = e.MarginBounds.Left;
    69             float top = e.MarginBounds.Top;
    70 
    71             string str = "";
    72             for (int i = 0; i < hangshu; i++)
    73             {
    74                 str = sr.ReadLine();
    75                 if (str == null)
    76                 {
    77                     //没有下一页
    78                     e.HasMorePages = false;
    79                     return;
    80                 }
    81                 float x = left;
    82                 float y = top + h*i;
    83                 objgraphics.DrawString(str, ziti, new SolidBrush(Color.Black), x, y,new StringFormat());
    84             }
    85             //有下一页
    86             e.HasMorePages = true;
    87         }
    88     }

            

  • 相关阅读:
    Spring Boot 的单元测试和集成测试
    Containers vs Serverless:你选择谁,何时选择?
    Java13新特性
    Java中创建对象的5种方法
    最好的重试是指数后退和抖动
    杂谈:面向微服务的体系结构评审中需要问的三个问题
    使用Quarkus在Openshift上构建微服务的快速指南
    Java EE—最轻量级的企业框架?
    AQS机制
    JVM-内存模型
  • 原文地址:https://www.cnblogs.com/angleSJW/p/1627383.html
Copyright © 2011-2022 走看看