查看电脑上打印机驱动都有哪些,“控制面板”--找到--“设备和打印机”打开如图:选择打勾是默认打印机。

图上打印机中有灰色和深色的打印机。灰色的一般是不可用的驱动。如何唤醒灰色图片打印机呢?

对着打印机驱动右键点击“查看现在正在打印什么”----“打印机”---“脱机使用打印机”勾去掉即可。

如果打印任务列表里面有打印任务都全部取消掉。

成功唤醒打印机,就可以正常调用驱动了。

点击“打印测试页”正常的话打印机会打印出测试页内容出来,如果打印不出来说明一点就是通信端口没有选对。点击“端口”选择对应的端口

直到选择对应的打印机端口可以打印出自测页后,如果选择对应的端口了,还是不能打印,就有点击“查看现在正在打印什么”,取消所有的打印任务消息。再从新测试打印。
接下来我们就进行代码开发了。

使用VS工具开发先创建一个项目,命名为“Drive_PrintFrom”

//获取所以打印机驱动名称
        private void getPrintDocumentlist()
        {
            PrintDocument print = new PrintDocument();
            string sDefault = print.PrinterSettings.PrinterName;//默认打印机名
            comboBox_drive.Items.Add(sDefault);

comboBox_drive.Text = sDefault;//显示默认驱动名称
            foreach (string sPrint in PrinterSettings.InstalledPrinters)//获取所有打印机名称
            {

if (sPrint != sDefault)
                {
                    comboBox_drive.Items.Add(sPrint); 
                }                
            }

}

private void printDocument1_PrintPage(object sender, PrintPageEventArgs e)
        {

Font titleFont = new Font("宋体", 9, FontStyle.Bold);//标题字体

Font fntTxt = new Font("宋体", 9, FontStyle.Regular);//正文文字

Brush brush = new SolidBrush(Color.Black);//画刷

Pen pen = new Pen(Color.Black);           //线条颜色

Point po = new Point(10, 10);
            try
            {
                e.Graphics.DrawString(GetPrintSW().ToString(), titleFont, brush, po);//打印内容

}

catch (Exception ex)
            {

MessageBox.Show(this, "打印出错!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);

}

}
        //驱动打印
        ///GetPrintSw方法用来构造打印文本,内部StringBuilder.AppendLine在Drawstring时单独占有一行。
        public StringBuilder GetPrintSW()
        {

StringBuilder sb = new StringBuilder();

string tou = "达普电子科技有限公司";

string address = "厦门达普";

string saleID = "2010930233330";    //单号

string item = "项目";

decimal price = 25.00M;

int count = 5;

decimal total = 0.00M;

decimal fukuan = 500.00M;

sb.AppendLine(" " + tou + " \n");

sb.AppendLine("-----------------------------------------");

sb.AppendLine("日期:" + DateTime.Now.ToShortDateString() + " " + "单号:" + saleID);

sb.AppendLine("-----------------------------------------");

sb.AppendLine("项目" + "    " + "数量" + "  " + "单价" + "    " + "小计");

for (int i = 0; i < count; i++)
            {

decimal xiaoji = (i + 1) * price;

sb.AppendLine(item + (i + 1) + "    " + (i + 1) + "   " + price + "    " + xiaoji);

total += xiaoji;

}

sb.AppendLine("-----------------------------------------");

sb.AppendLine("数量:" + count + "  合计: " + total);

sb.AppendLine("付款:" + fukuan);

sb.AppendLine("现金找零:" + (fukuan - total));

sb.AppendLine("-----------------------------------------");

sb.AppendLine("地址:" + address + "");

sb.AppendLine("电话:18950137415");

sb.AppendLine("谢谢惠顾欢迎下次光临 ");

sb.AppendLine("-----------------------------------------");

return sb;

}

//打印测试
        private void printbt_Click(object sender, EventArgs e)
        {
            string qd = comboBox_drive.Text;//下拉列表选择的驱动名称
            var printDocument = new PrintDocument();
            //指定打印机
            printDocument.PrinterSettings.PrinterName = qd;// "POS58 Printer"; //驱动名称

printDocument.PrintPage += new PrintPageEventHandler(printDocument1_PrintPage);
            try
            {
                printDocument.Print();
            }
            catch (InvalidPrinterException)
            {

}
            finally
            {
                printDocument.Dispose();
            }
        }

到这里就可以实现驱动开发了,很多小伙伴们遇到的问题不是在代码上,而是驱动设置问题。如驱动端口没有选择对,驱动脱机状态,打印列表阻塞。都会影响到驱动无法打印。
欢迎留言交流!

DEMO下载:https://download.csdn.net/download/huningjun/21507512

C# 调用打印机驱动实现打印功能相关推荐

  1. QT调用打印机实现模板打印功能(手把手教学!!!)

    文章目录 一.创建工程 二.UI设计及控件命名 三.代码演示 3.1 .pro文件 3.2 mainwindow.h文件 3.3 main.cpp文件 3.4 mainwindow.cpp文件 四.结 ...

  2. android 如何实现连接蓝牙打印机来实现打印功能

    ============问题描述============ 目前,android 如何实现连接蓝牙打印机来实现打印功能,请大侠来指点, 是否要遵循什么协议标准,还是有设备提供商会提供打印的sdk, 我们 ...

  3. 使用JAVA调用热敏打印机接口实现打印功能

    一 前言 前段时间在开发项目时,需要实现打印的功能,有着封装好的工具类,不过使用的时候有些地方还是遇到了一些小坑,在此整理出来希望对大家有所帮助. 二 准备工作 1.实体类和工具类 实体类 packa ...

  4. 安卓调用PrinterShare实现无线打印功能

    最近项目需要用到蓝牙打印,百度了很多资料,关于安卓移动打印的文章都不是很详细.要知道自己去写一个蓝牙打印模块那可是一个比较大的工作量了,而且还需要对市面上的打印机进行兼容.这个我引用一篇文章大家看下: ...

  5. java 调用打印机 api_java 调用打印机API无法打印,但是直接打印可以,请问有人遇到过这样的问题吗?...

    java调用打印机的代码如下:publicstaticvoidmain(String[]args){PrintRequestAttributeSetpras=newHashPrintRequestAt ...

  6. java如何驱动z4mplus打印二维码_斑马 Zebra 打印机驱动下载,打印软件下载

    斑马Zebra打印机驱动下载 环境支持: Windows Vista.Windows 7.Windows 8 和 Windows 10的所有版本. Windows Server 2008.2008 R ...

  7. 修改惠普(HP)LaserJet 1020打印机驱动增加打印长度

    惠普(HP)LaserJet 1020,就是这个东西: 惠普(HP)LaserJet 1020 算是惠普很经典的一款黑白激光打印机了,在我家服役了也有十多年了. 然而这个打印机的驱动,限制了打印纸宽度 ...

  8. python调用打印机驱动下载_selenium的Python使用(一)浏览器驱动的安装及使用

    一.selenium的安装 直接使用pip进行安装 pip install selenium    #(安装最新版本) pip install selenium==3.6.0   #(安装指定版本) ...

  9. 计算机无法搜索到打印机驱动,添加打印机时搜索不到如何解决_电脑搜不到打印机设备的处理办法-系统城...

    电脑要添加打印机时需要先搜索这个打印机,但搜索过程中常常遇到搜索不到打印机设备的情况,那我们遇到这一问题要怎么办呢?很多用户不清楚,所以今天小编为大家整理的就是电脑搜不到打印机设备的处理办法. 处理办 ...

  10. java打印api_java 调用打印机API无法打印的问题,请问找到解决方案了吗?

    展开全部 import java.awt.BasicStroke; import java.awt.Color; import java.awt.Component; import java.awt. ...

最新文章

  1. CTF web题总结--http header 修改、cookie注入
  2. jQuery的入口函数
  3. 1.有意义的命名(代码的整洁之道)
  4. Dubbo -- 系统学习 笔记 -- 示例 -- 服务分组
  5. Java StringBuilder codePointBefore()方法与示例
  6. CVPR 2020 | 旷视提出新型人-物交互检测框架,实现当前最佳
  7. Spring MVC 常用注解之 Controller 篇
  8. java 框架介绍------权限框架
  9. 高盛:大象转身,开启科技金融转型之路
  10. 俄亥俄州立大学计算机硕士申请,俄亥俄州立大学计算机科学与工程理学硕士研究生申请要求及申请材料要求清单...
  11. apt cyg 安装php,Windows下安装Cygwin及apt-cyg
  12. linux环境下如何重装系统,linux如何重装系统
  13. 使用GO实现尚硅谷家庭记账系统
  14. gitlab使用163邮箱向用户发送邮件
  15. python 添加图片_python 图片读取、添加等
  16. Windows查看网络连接并清理缓存
  17. 集成电路技术——如何制造芯片(1)
  18. 浅谈工作流技术及其应用
  19. 网页上ajax异步加载数据,网页的异步请求(Ajax)
  20. 上海滩上,共创行业新价值的大时代要来了

热门文章

  1. 【渝粤题库】广东开放大学 商务网站建设与维护 形成性考核
  2. 在线分析丨相关性分析——RDA/CCA分析
  3. python 典型相关分析_CCA典型关联分析原理与Python案例
  4. 上帝视角Hbase二级索引方案全解析
  5. WordPress发布插件,WordPress定时采集伪原创发布插件
  6. 如何用30分钟快速优化家中Wi-Fi?阿里工程师有绝招
  7. Excel多级下拉菜单的制作
  8. 供应链三道防线(读书笔记)2(共4)
  9. c语言文学研究助手报告,文学研究助手数据结构报告
  10. opencms学习笔记