zoukankan      html  css  js  c++  java
  • C# print pos winform

    先将pos机设置为默认

     控制面板->打印机和传真->右键->服务器属性

    首先创建 ClassPrint 对象

    using System;
    using System.Drawing;
    using System.Drawing.Printing;
    using System.IO;
    using System.Text;
    
    namespace PrintWinform
    {
        class ClassPrint
        {
            //定义一个字符串流,用来接收所要打印的数据
            private static StringReader sr;
            //str要打印的数据
            public static bool Print(StringBuilder str)
            {
                bool result = true;
                try
                {
                    sr = new StringReader(str.ToString());
                    PrintDocument pd = new PrintDocument();
                    pd.PrintController = new System.Drawing.Printing.StandardPrintController();
                    //pd.DefaultPageSettings.Margins.Top = 2;
                    //pd.DefaultPageSettings.Margins.Left = 0;
                    //pd.DefaultPageSettings.PaperSize.Width = 320;
                    pd.DefaultPageSettings.Margins = new Margins(20, 20, 20, 20);
                    
                    //pd.DefaultPageSettings.PaperSize.Height = 5150;
                    pd.PrinterSettings.PrinterName = pd.DefaultPageSettings.PrinterSettings.PrinterName;//默认打印机
                    pd.PrintPage += new PrintPageEventHandler(pd_PrintPage);
                    pd.Print();
                }
                catch (Exception ex)
                {
                    result = false;
                }
                finally
                {
                    if (sr != null)
                        sr.Close();
                }
                return result;
            }
    
            private static void pd_PrintPage(object sender, PrintPageEventArgs ev)
            {
                Font printFont = new Font("Arial", 9);//打印字体
                float linesPerPage = 0;
                float yPos = 0;
                int count = 0;
                float leftMargin = ev.MarginBounds.Left;
                float topMargin = ev.MarginBounds.Top;
                String line = string.Empty;
                linesPerPage = ev.MarginBounds.Height / printFont.GetHeight(ev.Graphics);
                while (count < linesPerPage && ((line = sr.ReadLine()) != null))
                {
                    yPos = topMargin + (count * printFont.GetHeight(ev.Graphics));
                    ev.Graphics.DrawString(line, printFont, Brushes.Black,
                       leftMargin, yPos, new StringFormat());
                    count++;
                }
                // If more lines exist, print another page.
                if (line != null)
                    ev.HasMorePages = true;
                else
                    ev.HasMorePages = false;
            }
        }
    }
    View Code

    然后UI form

        private void button1_Click(object sender, EventArgs e)
            {
                StringBuilder sb = new StringBuilder();
                sb.Append("                心理测评一体机                
    ");
                sb.Append("              职业倾向人格临床量表             
    ");
                sb.Append("***********************************************
    ");
                sb.Append("E量表得分为:32分,您的性格内向
    ");
                sb.Append("N量表得分为:28分,您的情绪稳定性高
    ");
                sb.Append("P量表得分为:56分,您的倔强性一般
    ");
                sb.Append("L量表得分为:51分,您的掩饰性一般。
    ");
                sb.Append("***********************************************
    ");
                sb.Append("                       北京XXXX科技有限公司
    ");
                sb.Append("   测评结果仅供参考,最终结果请以心理咨询师为准
    ");
                ClassPrint.Print(sb);
            }
    View Code
  • 相关阅读:
    软件工程—附加作业
    软件工程最终总结
    电梯调度(两人结对)
    VS单元测试
    第二周作业(2,3题)
    VS的安装
    补救
    漂亮男孩不说谎
    博客带我成长
    Java后缀数组-求sa数组
  • 原文地址:https://www.cnblogs.com/DataBase-123/p/6807049.html
Copyright © 2011-2022 走看看