zoukankan      html  css  js  c++  java
  • C#调用小票打印机

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Drawing.Printing;
    namespace BNCheckItemsClient.FormC.Specimen
    {
        publicclass PrintSpecimenLabel
        {
            PrintDocument printDocument;
            privateint _PrintPage =0;//当前打印页
             privateint _TotalPage =1;//总页数 
             publicstring _PrinterName =string.Empty;// 打印机名称
            publicvoid DoPrint()
            {
                try
                {
                    //准备数据
                    PrepareData();
                   
                    if (_TotalPage <=0)
                        return;
                    //设置打印机
                    PrinterSetup();
                    if (!string.IsNullOrEmpty(_PrinterName))
                    {
                        printDocument.PrinterSettings.PrinterName = _PrinterName;
                        if (!printDocument.PrinterSettings.IsValid)
                        {
                            thrownew Exception("The printer is not Valid");
                        }
                    }
                    printDocument.Print();
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                    //throw;
                }
            }
            privatevoid PrinterSetup()
            {
                //设置打印机属性
                printDocument.PrinterSettings.PrinterName ="ZDesigner 888-TT";//设置打印机
                printDocument.DefaultPageSettings.PaperSize =new System.Drawing.Printing.PaperSize("SpecimenLabel",110, 180);//页面大小
                printDocument.DefaultPageSettings.Landscape =true;//横向打印
                printDocument.PrintPage +=new PrintPageEventHandler(printDocument_PrintPage);
             }
            //在这里写打印的内容
            void printDocument_PrintPage(object sender, PrintPageEventArgs e)
            {
                Graphics g = e.Graphics;
                float leftMargin = 5f; //左边距
                  SolidBrush myBrush =new SolidBrush(Color.Black);//刷子
                  float yPosition = 5f;//行定位
                Font printFont =new Font("宋体", 20f, FontStyle.Bold);//设置字体
                g.DrawString("这是要打印的第一行内容",printFont, myBrush, leftMargin + 140f, 7f, new StringFormat());
                yPosition += printFont.GetHeight(g);//另起一行
                  printFont =new Font("宋体", 10f, FontStyle.Bold);//改变字体
                g.DrawString("这是要打印的第二行内容", printFont, myBrush, leftMargin, yPosition, new StringFormat());
                //如果要同时打印多个标签
                  _PrintPage++;//页号
                if (_PrintPage < _TotalPage)
                { 
                    e.HasMorePages =true;
                }
                else
                {
                    e.HasMorePages =false;
                }
            }
        }
    }

    到打印机和传真文件夹-->右键-->服务器属性
    添加了自己定义的纸类型 名称949W300H 宽9.49in,高3.00in

    所以改了程序为

    foreach(PaperSize ps in printDoc.PrinterSettings.PaperSizes)
    {
     if(ps.PaperName=="949W300H")
     {
      printDoc.PrinterSettings.DefaultPageSettings.PaperSize=ps;
      printDoc.DefaultPageSettings.PaperSize=ps;
     }
    }


    就可以了 似乎纸张只能从printDoc.PrinterSettings.PaperSizes中选择

  • 相关阅读:
    CentOS7安装(三)- 配置阿里云yum源
    OSQA的配置
    MySQL学习 (三) Limit-Distinct-Union
    MySQL学习(二)-字段类型及约束
    MySQL学习(一)-基本知识
    Python闭包
    软件测试面试常考点
    人生感悟
    常用的Linux命令
    细说php一些常见的知识点
  • 原文地址:https://www.cnblogs.com/jiangyuxuan/p/5154764.html
Copyright © 2011-2022 走看看