C#调用系统打印机(XP-58小票打印)
需要安装XP-58驱动。

// An highlighted block
using System;
using System.Drawing;
using System.Drawing.Printing;
using System.Globalization;
using System.Management;
using System.Windows.Forms;namespace 实验
{public class USBPrinter{private string defaultPrinter;//private string streamtext;private PrintDocument docToPrint = new PrintDocument();//创建一个PrintDocument的实例private string carCardNum;private string trashTypeName;private string trashWeight;private string driverUserName;private string loginUserName;public USBPrinter(){//// TODO: 在此处添加构造函数逻辑////this.docToPrint.DefaultPageSettings.PaperSize = new PaperSize("Custum", default, 600);this.docToPrint.PrintPage += new PrintPageEventHandler(DocToPrint_PrintPage);}//将事件处理函数添加到PrintDocument的PrintPage中public bool IsDefaultPrinter(){using (PrintDocument pd = new PrintDocument()){string sDefault = pd.PrinterSettings.PrinterName;//默认打印机名//MessageBox.Show(sDefault);if (sDefault == "XP-58"){defaultPrinter = sDefault;return true;}else{defaultPrinter = "默认打印机不是XP-58";return false;}}}public enum PrinterStatus{其他状态 = 1, //比如 暂停状态未知,空闲, //就绪状态正在打印,预热,停止打印,打印中,离线 //脱机 状态}public PrinterStatus GetPrinterStat(string PrinterDevice){PrinterStatus ret = 0;string path = @"win32_printer.DeviceId='" + PrinterDevice + "'";ManagementObject printer = new ManagementObject(path);printer.Get();if ((bool)printer.Properties["WorkOffline"].Value){return PrinterStatus.离线;//MessageBox.Show("离线");}else{ret = (PrinterStatus)Convert.ToInt32(printer.Properties["PrinterStatus"].Value);//MessageBox.Show(Convert.ToString(printer.Properties["PrinterStatus"].Value));return ret;}}public void StartPrint(string carCardNum, string trashTypeName, string trashWeight, string driverUserName, string loginUserName){//this.streamtext = text;this.carCardNum = carCardNum;this.trashTypeName = trashTypeName;this.trashWeight = trashWeight;this.driverUserName = driverUserName;this.loginUserName = loginUserName;if (IsDefaultPrinter()){docToPrint.Print();}else{MessageBox.Show(defaultPrinter);}Release();}private void DocToPrint_PrintPage(object sender, PrintPageEventArgs e)//设置打印机开始打印的事件处理函数 e.MarginBounds.Y{e.Graphics.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.NearestNeighbor;e.Graphics.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;//像素偏移方式,像素在水平和垂直距离上均偏移若干个单位,以进行高速锯齿消除。e.Graphics.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.Half;//也可以通过设置Graphics对不平平滑处理方式解决,代码如下: //e.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;Font printFont = new Font("Arial", (float)9.3, FontStyle.Regular);//StringFormat stringFormat = new StringFormat();// Draw the content.//string text = streamtext;//e.Graphics.DrawString(text, printFont, System.Drawing.Brushes.Black, 0, 0);int marginTop = 10;int dis = 25;e.Graphics.DrawString(" ", printFont, Brushes.Black, 0, 0);e.Graphics.DrawString("回收凭条", new Font("Arial", 10, FontStyle.Bold), Brushes.Black, 63, marginTop + dis * 2);e.Graphics.DrawString("时        间: " + DateTime.Now.ToString("G", CultureInfo.CreateSpecificCulture("zh-CN")), printFont, Brushes.Black, 0, marginTop + dis * 4);e.Graphics.DrawString("回收类型: " + trashTypeName, printFont, Brushes.Black, 0, marginTop + dis * 5);e.Graphics.DrawString("回收净重: " + trashWeight + "kg", printFont, Brushes.Black, 0, marginTop + dis * 6);e.Graphics.DrawString(".", printFont, Brushes.Gray, 0, dis * 11 + 15);}private void Release(){docToPrint.Dispose();trashTypeName = null;trashWeight = null;carCardNum = null;driverUserName = null;loginUserName = null;}}
}

在form窗口调用

USBPrinter printer = new USBPrinter();printer.IsDefaultPrinter();//MessageBox.Show(printer.GetPrinterStat("XP-58").ToString());try{//if (printer.GetPrinterStat("XP-58").ToString() == "离线")//{//    MessageBox.Show("打印机XP-58未连接");//    return;//}//else if (printer.GetPrinterStat("XP-58").ToString() == "其他状态" || printer.GetPrinterStat("XP-58").ToString() == "未知")//{//    MessageBox.Show("打印机XP-58连接出错");//    return;//}printer.StartPrint("111", "111", "111", "111", "111");}catch (Exception ex){MessageBox.Show(ex.Message);}

C#调用系统打印机(XP-58小票打印)相关推荐

  1. pb11.5调用系统打印机 Function ulong ShellExecute(ulong hwnd,ref string lpOperation,ref string lpFile,ref st

    pb11.5调用系统打印机 Function ulong ShellExecute(ulong hwnd,ref string lpOperation,ref string lpFile,ref st ...

  2. java打印字符串显示_JAVA调用系统打印机打印字符串

    用java实现打印,java.awt中提供了一些打印的API,要实现打印,首先要获得打印对象,然后继承Printable实现接口方法print,以便打印机进行打印,最后用用Graphics2D直接输出 ...

  3. js直接调用系统打印机进行打印

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  4. C#调用系统打印机和收银钱箱

    打印示例: StringBuilder builder = new StringBuilder(); builder.AppendLine("--------------打印测试------ ...

  5. codesoft指定打印机打印_巧用win32print来控制windows系统打印机并推送打印任务

    小爬最近接到的一个需求是:将windows系统下的打印任务批量有序传输给网络打印机,实现批量有序打印.     用户先从公司的OA(B/S模式)系统下 打印指定内容的表单以及表单中的附件内容.这个问题 ...

  6. windows下如何用python控制打印机打印_巧用win32print来控制windows系统打印机并推送打印任务...

    小爬最近的一个需求是:将windows系统下的打印任务批量有序给到网络打印机. 用户先从公司的OA(B/S模式)系统下 打印指定内容的表单以及表单中的附件内容.这个问题可以这样分解: 1.抓包,得到O ...

  7. (打印机Printer)小票打印

    源码路径为 E:\WGY\C#学习\一套开源的企业业务系统框架Winform\586570 31天学会CRM项目开发pdf+源代码\31天学会CRM项目开发-源代码\003 实例及拓展练习\Print ...

  8. pyqt5 listview 不默认选中_pyqt5 商店小票打印的实现模板

    说明 最近在用pyqt5做商店小票打印,用的是得力DL-581PW(NEW)热敏小票打印机. 商店小票打印,属于escpos打印. 在网上找了很多实现方法,看了很多相关文章,经历了很多困难,最后终于实 ...

  9. Android蓝牙打印小票,仿美团外卖小票打印

    这个一个Android蓝牙打印小票demo,类似美团外卖小票打印 自适应排版小票格式,一行两列和三列轻松搞定,文本长短不用愁 先看一下效果图: demo里主要是使用汉印打印机进行蓝牙小票打印,它还支持 ...

  10. pyqt5 商店小票打印的实现模板

    说明 最近在用pyqt5做商店小票打印,用的是得力DL-581PW(NEW)热敏小票打印机. 商店小票打印,属于escpos打印. 在网上找了很多实现方法,看了很多相关文章,经历了很多困难,最后终于实 ...

最新文章

  1. 盘点|应用落地,构建城市“大脑”
  2. Design Pattern - Command (C#)
  3. 线性代数笔记:Kronecker积
  4. SpringMVC学习10之AJAX初体验和了解
  5. JVM实战与原理---类加载机制
  6. Java黑皮书课后题第7章:*7.22(计算一个字符串中大写字母的数目)编写程序,从命令行输入一个字符串,然后显示字符串中大写字母的数目
  7. iOS开发事件分发机制—响应链—手势影响
  8. 【每日一题】4月27日题目精讲 Removal
  9. valhalla 插件_Valhalla项目的价值
  10. leetcode111. 二叉树的最小深度(队列)
  11. Vue系列vue-router的嵌套使用(四)
  12. 视觉SLAM笔记(38) 3D-3D: ICP
  13. 项目背景怎么描述_培训回顾 |第六届“互联网+”之创业大赛项目计划书撰写
  14. Vultr 修改 Root 密码
  15. Visual C++ 时尚编程百例002(MFC窗口)
  16. lufylegend引擎制作接水果小游戏
  17. 自学程序员和科班程序员差别到底在哪里?
  18. 苏宁易购开放平台_苏宁易购半年报解读:业态场景与零售服务的“两手抓”
  19. word取消限制编辑
  20. 太牛了!某大佬程序猿北漂16年,从睡天桥到身价数千万,衣锦还乡重庆住豪宅!...

热门文章

  1. froala富文本编辑器与golang、beego,脱离ueditor苦海
  2. 将ASM里面的文件copy到文件系统
  3. 对称密钥加密、非对称密钥加密、混合加密机制
  4. 3D打印软件 PrusaSlicer切片软件
  5. 用友凭证打印页面边距设置会同步
  6. nod32 lic 99用户授权文件可以用到2015年4月的许可证下载
  7. ffmpeg转码视频
  8. (八)冰点还原安装及使用
  9. PDF怎么转换成CAD图纸?两个方法轻松操作。
  10. linux安装svn服务端图形化界面,Linux svn 图形界面客户端 Rabbitvcs 安装