(打印机Printer)小票打印
源码路径为
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)小票打印相关推荐
- Android打印机--小票打印格式及模板设置
小票打印就是向打印设备发送控制打印格式的指令集,而这些打印格式需要去查询对应打印机的API文档,这里我把常用的api给封装了一下 文字对齐方式 打印字体大小 字体是否加粗 打印二维码 打印条形码 切纸 ...
- java 绘图 打印_java调用本地打印机,绘制打印模板,小票模板
文章目录 jar资源 绘制打印模板 import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java ...
- java根据打印模板打印_java调用本地打印机,绘制打印模板,小票模板
jar资源 绘制打印模板 import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt. ...
- 单据小票打印模板自定义设计,手机收银软件APP搭配蓝牙便携打印机,移动便携打印零售单单据小票
单据小票打印模板自定义设计,手机收银软件APP搭配蓝牙便携打印机,移动便携打印零售单单据小票,轻松实现仓库条码管理,扫码入库出库盘点_哔哩哔哩_bilibili单据小票打印模板自定义设计,手机收银软件 ...
- pyqt5 listview 不默认选中_pyqt5 商店小票打印的实现模板
说明 最近在用pyqt5做商店小票打印,用的是得力DL-581PW(NEW)热敏小票打印机. 商店小票打印,属于escpos打印. 在网上找了很多实现方法,看了很多相关文章,经历了很多困难,最后终于实 ...
- USB小票打印解决办法
转载的:https://blog.csdn.net/ghs79/article/details/46543845 \?\USB#VID_8866&PID_0100#0001B0000000#{ ...
- Android打印机--TSC 标签打印
打印机按照连接方式分为USB打印机.蓝牙打印机.网络打印机.云打印机.内联打印机:按照打印纸张大小分为带切刀的80厨房打印机和58热敏票据打印机:按照打印结果分为小票打印机和标签打印机:关于小票打印, ...
- 基于Qt的收银点餐系统之小票打印(一)
待解决问题: 顾客在点餐完毕后给打印一份小票.如图所示: 解决方案:最开始拿到了一个基于JAVA实现的小票打印demo,使用的是ECS/POS指令集.但是并没有成功地用Qt也实现出来. 本文基于QPa ...
- 基于Qt的收银点餐系统之小票打印(二)
本篇给出基于QPrinter+QPainter的小票打印代码. 一.说明 类ReceiptPainter继承了QPainter,专门用于打印小票,在方法doCustomerPrint()中进行打印. ...
- pyqt5 商店小票打印的实现模板
说明 最近在用pyqt5做商店小票打印,用的是得力DL-581PW(NEW)热敏小票打印机. 商店小票打印,属于escpos打印. 在网上找了很多实现方法,看了很多相关文章,经历了很多困难,最后终于实 ...
最新文章
- C语言博客作业04--数组
- MFC中制作一个似命令行的输入框
- draw.io二次开发(2)文件解读
- linux使用freetds 连接连远程服务器sqlservser2012
- CFBundleVersion与CFBundleShortVersionString
- linux下安装配置DHCP服务器
- 洛谷P1014 [NOIP1999 普及组] Cantor 表
- windows下有趣的小玩意
- python计算无穷级数求和常用公式_傅里叶变换(二) 从傅里叶级数到傅里叶变换...
- 100个最古老互联网域名 最久只有23年(附名单)
- java bar_Java Bar类代码示例
- 买了基金之后要天天盯着吗?
- 虚拟机安装ubuntu18.04及其srs服务器的搭建
- 给定一个数组,将所有的元素在一行里打印出来,中间以逗号分开
- 5秒钟搭建一个简单版的restful资源服务器
- allennlp手动安装教程
- itunes备份是整个手机备份吗_如何使用iTunes备份手机资料
- 特拉华大学计算机专业怎么样,最新美国大学CS专业薪资排名,也许这就是你择校的理由!...
- 视频怎么分割片段?快速分割视频小技巧
- 老罗锤子手机(Smartisan T1)的一些感想