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

设计的WMI操作参考https://blog.csdn.net/u011854789/article/details/52792083

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Management;namespace PrintDemo
{public partial class Form1 : Form{// 引用系统API的SetDefaultPrinter()方法,设置默认打印机[DllImport("winspool.drv")]public static extern bool SetDefaultPrinter(string Name);public Form1(){InitializeComponent();}private void Form1_Load(object sender, EventArgs e){//设置初始值barEditItem3.EditValue = "无";//使用其上一层级的控件EditValue方法//指定打印文档this.printDialog1.Document = this.printDocument1;this.pageSetupDialog1.Document = printDocument1;this.printPreviewDialog1.Document = this.printDocument1;}/// <summary>/// 执行打印/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void btnPrint_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e){//设置选定的默认打印机SetDefaultPrinter(barEditItem3.EditValue.ToString());//执行打印this.printDocument1.Print();}/// <summary>/// 页面设置的单击事件处理/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void btnPageSet_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e){//页面设置//页边距设置this.pageSetupDialog1.PageSettings.Margins.Left = 1;this.pageSetupDialog1.PageSettings.Margins.Top = 1;this.pageSetupDialog1.PageSettings.Margins.Bottom = 1;this.pageSetupDialog1.PageSettings.Margins.Right = 1;//确定后直接打印if (this.pageSetupDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)this.printDocument1.Print();}/// <summary>///  打印机设置的单击事件处理/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void btnPrinterSet_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e){//打印机设置//确定后直接打印if (this.printDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)this.printDocument1.Print();}/// <summary>/// 打印预览的单击事件处理/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void btnPrintPreview_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e){this.printDocument1.Print();}/// <summary>/// 打印文字/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e){//当有多页需要打印时,需要该事件加入e.HasMorePages = true来告诉打印机还有更多页//需继续打印。//e.HasMorePages = true;//设置打印机质量e.Graphics.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;e.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;e.Graphics.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;Font drawFont = new Font("Arial",14);SolidBrush drawBrush = new SolidBrush(Color.Black);float x = 3;float y = 3;StringBuilder sb = new StringBuilder();sb.Append("青岛**有限公司江山路店\r\n");sb.Append("--------------------------\r\n");sb.Append("品名    \t单价\t数量\t金额\r\n");sb.Append("打火机  \t2.00\t1.00\t2.00\r\n");sb.Append("青岛啤酒\t10.00\t30.00\t300.00\r\n");sb.Append("瓜子    \t9.00\t2.00\t18.00\r\n");sb.Append("橙汁    \t12.00\t1.00\t12.00\r\n");sb.Append("合计    \t \t \t332.00\r\n");sb.Append("--------------------------\r\n");sb.Append(string.Format("打印日期: {0}\r\n 操作员:{1}\r\n\r\n",DateTime.Now.ToString("yyyy-MM-dd HH:mm"),"001"));#if false//打印文字e.Graphics.DrawString(sb.ToString(), drawFont, drawBrush, x, y);
#else//打印图片this.pictureBox1.SizeMode = PictureBoxSizeMode.AutoSize;//创建一个空白图像Bitmap b = new Bitmap(400,600);//设置pictureBox1的图像this.pictureBox1.Image = b;Graphics gra = Graphics.FromImage(this.pictureBox1.Image);gra.DrawString(sb.ToString(),drawFont,drawBrush,x,y);//设置pictureBox1的图像this.pictureBox1.Refresh();e.Graphics.DrawImage(this.pictureBox1.Image, new Point(3, 3));
#endif}/// <summary>/// 设置默认打印机/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void barButtonItem2_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e){          //需要引用System.Management命名空间//首先遍历全部打印机,使用ManagementObjectSearcher对象ManagementScope ms = new ManagementScope(ManagementPath.DefaultPath);ms.Connect();SelectQuery sq = new SelectQuery();sq.QueryString = @"SELECT Name FROM WIN32_Printer";ManagementObjectSearcher mos = new ManagementObjectSearcher(ms,sq);foreach (ManagementObject mo in mos.Get())repositoryItemComboBox1.Items.Add(mo["Name"].ToString());}}
}


工具条使用了DevExpress16.2

(打印机Printer)小票打印相关推荐

  1. Android打印机--小票打印格式及模板设置

    小票打印就是向打印设备发送控制打印格式的指令集,而这些打印格式需要去查询对应打印机的API文档,这里我把常用的api给封装了一下 文字对齐方式 打印字体大小 字体是否加粗 打印二维码 打印条形码 切纸 ...

  2. java 绘图 打印_java调用本地打印机,绘制打印模板,小票模板

    文章目录 jar资源 绘制打印模板 import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java ...

  3. java根据打印模板打印_java调用本地打印机,绘制打印模板,小票模板

    jar资源 绘制打印模板 import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt. ...

  4. 单据小票打印模板自定义设计,手机收银软件APP搭配蓝牙便携打印机,移动便携打印零售单单据小票

    单据小票打印模板自定义设计,手机收银软件APP搭配蓝牙便携打印机,移动便携打印零售单单据小票,轻松实现仓库条码管理,扫码入库出库盘点_哔哩哔哩_bilibili单据小票打印模板自定义设计,手机收银软件 ...

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

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

  6. USB小票打印解决办法

    转载的:https://blog.csdn.net/ghs79/article/details/46543845 \?\USB#VID_8866&PID_0100#0001B0000000#{ ...

  7. Android打印机--TSC 标签打印

    打印机按照连接方式分为USB打印机.蓝牙打印机.网络打印机.云打印机.内联打印机:按照打印纸张大小分为带切刀的80厨房打印机和58热敏票据打印机:按照打印结果分为小票打印机和标签打印机:关于小票打印, ...

  8. 基于Qt的收银点餐系统之小票打印(一)

    待解决问题: 顾客在点餐完毕后给打印一份小票.如图所示: 解决方案:最开始拿到了一个基于JAVA实现的小票打印demo,使用的是ECS/POS指令集.但是并没有成功地用Qt也实现出来. 本文基于QPa ...

  9. 基于Qt的收银点餐系统之小票打印(二)

    本篇给出基于QPrinter+QPainter的小票打印代码. 一.说明 类ReceiptPainter继承了QPainter,专门用于打印小票,在方法doCustomerPrint()中进行打印. ...

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

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

最新文章

  1. C语言博客作业04--数组
  2. MFC中制作一个似命令行的输入框
  3. draw.io二次开发(2)文件解读
  4. linux使用freetds 连接连远程服务器sqlservser2012
  5. CFBundleVersion与CFBundleShortVersionString
  6. linux下安装配置DHCP服务器
  7. 洛谷P1014 [NOIP1999 普及组] Cantor 表
  8. windows下有趣的小玩意
  9. python计算无穷级数求和常用公式_傅里叶变换(二) 从傅里叶级数到傅里叶变换...
  10. 100个最古老互联网域名 最久只有23年(附名单)
  11. java bar_Java Bar类代码示例
  12. 买了基金之后要天天盯着吗?
  13. 虚拟机安装ubuntu18.04及其srs服务器的搭建
  14. 给定一个数组,将所有的元素在一行里打印出来,中间以逗号分开
  15. 5秒钟搭建一个简单版的restful资源服务器
  16. allennlp手动安装教程
  17. itunes备份是整个手机备份吗_如何使用iTunes备份手机资料
  18. 特拉华大学计算机专业怎么样,最新美国大学CS专业薪资排名,也许这就是你择校的理由!...
  19. 视频怎么分割片段?快速分割视频小技巧
  20. 老罗锤子手机(Smartisan T1)的一些感想

热门文章

  1. 基于社交网络爬虫分析人物兴趣属性(一)
  2. Appium 自动化测试配置wda的两种方式。
  3. MySQL语句最全详解
  4. 看完《互联网公司时尚穿搭指南》,百度程序员笑出了猪声!太逗了!
  5. 推荐一个 yyds 开源项目任务管理工具
  6. 使用Axure制作鲁大师优化页面
  7. 银行卡多久不用会自动注销
  8. 【pwnable.kr】 blackjack - 成为百万富翁(millionaire)
  9. 适合女生上班族的兼职有哪些?女生如何赚外快?
  10. 用doss进入mysql_DOSS的详细操作?