注:因发现各网站爬虫随意收集文章,故做此声明:版权归原作者(Leaf.Duan)所有,转载还请著名出处,谢谢

设备信息

Epson TM-T88IV Thermal Printer,爱普生 TM-T88IV 热敏式打印机,主要用来打印票据(receipt)

操作系统:windows 7 Ultimate x64

环境配置

要利用 Microsoft Point of Service for .NET,针对 Epson 的设备,要下载以下两个安装包,以及做适当配置:

1. Microsoft Point of Service for .NET v1.12 下载

    PS:发现最新版 v1.14,EPSON 是不支持,用此 API 找不到设备

2. EPSON OPOS ADK for .NET 下载

要先安装微软的那个,再安装爱普生的那个。安装好了这两个东西,就要利用爱普生的 SetupPOS 给物理设备 Printer 映射一个逻辑名 Logical Name,用于程序使用。

本人使用的是 Wire Network 方式,因此需要设置 Printer 的 IP 地址,可以参考 How to Setting EPSON TM-T88IV Printer IP Address

打印

接下来应该就是实战阶段,如何代码操作打印,这是我的一个封装 PosPrinter.cs 代码在 Github 上面,具体使用不需要做说明了吧。

*Receipt Template*

打印内容模板问题,关于此,网络资料真实稀缺,例如要打印如下内容:

Leaf.Duan

0001

*请留意叫号

22:53:18 18-June-2014

有字体加粗,加大,以及拉伸,文字居中对齐等基本格式控制,还有关于调节纸张间距 Feed 控制和 Cut Paper 设置等等,具体可以参考 Microsoft API ,给一个如上 Receipt Template:

 /*
ESC|cAESC|4C{1}{0}{0}{0}ESC|bCESC|5hCESC|5vC{2}{0}ESC|NESC|cAESC|4C{0}{0}{3}{0}{0}{0}ESC|NESC|cA{4}{0}ESC|5lFESC|100P
**/ ESC|cA // 文本居中
ESC|4C // 位置大小加倍(高宽加倍)
Leaf.Duan // {1}
{0}
{0}
{0}
ESC|bC // 字体加粗
ESC|5hC // 水平拉伸 5 倍
ESC|5vC // 垂直拉伸 5 倍
0001 // {2}
{0}
ESC|N // 设置恢复正常,默认设置
ESC|cA // 文字居中
ESC|4C // 文字大小加倍
{0}
{0}
*请留意叫号 // {3}
{0}
{0}
{0}
ESC|N // 设置恢复正常,默认设置
ESC|cA // 文字居中
22:55:18 18-June-2014 // {4}
{0}
ESC|5lF // Feed 5 行
ESC|100P // Cut Paper 100%,就是剪纸 100%,具体比例可以按需求设置 /* 以上 {0} 代表换行 Environment.NewLine; ESC 可以用 \x1B 代替,不过要注意转义; ESC 也可以用 ((char) 27).ToString() 做 Replace */

疑问

如何使用 EPSON 打印机驱动 API,如 StatusAPI 进行打印?因为 EPSON 官方文档实在是混乱和不利于开发者,所以没有研究,不知道诸位博友有没有此实现方式可供大家分享。

总结

因为关于此的信息在网络上实在是零碎,故做此文以整理。因时间仓促,探究深度有限,还望博友分享各自经验。

PS:如何发现同一网络内的 EPSON 设备,可以下载软件 EpsonNet Config 来查看,很是方便

Epson Pos Printer for .net的更多相关文章

  1. (转)TCP注册端口号大全

    分类: 网络与安全 cisco-sccp 2000/tcp Cisco SCCPcisco-sccp 2000/udp Cisco SCCp# Dan Wing <dwing&cisco ...

  2. 设备管理 USB ID

    发现个USB ID站点,对于做设备管理识别的小伙伴特别实用 http://www.linux-usb.org/usb.ids 附录: # # List of USB ID's # # Maintain ...

  3. CentOS 7 服务端口表

    # Note that it is presently the policy of IANA to assign a single well-known# port number for both T ...

  4. 收银台(POSBox) 配置向导

    先决条件 在开始设置您的POSBox之前, 确保你准备好了一切. 你会需要 : POSBox 2A电源适配器 一台带最新的Web浏览器的计算机或平板电脑. 可用的的SaaS或已安装零售的Odoo 设置 ...

  5. FastReport经验

    FastReport经验 1.FastReport中如果访问报表中的对象? 可以使用FindObject方法. TfrxMemoView(frxReport1.FindObject(’memo1′)) ...

  6. python3 驱动自动安装脚本

    from pywinauto.application import Applicationimport osimport timeos.system('start C:/Users/Administr ...

  7. 怎样做出通用的pos小票打印程序

    POS小票打印机分为热敏和针式俩种. 打印纸的宽度分为58毫米.76毫米和80毫米三种. 打印接口分为:串口.并口.USB和网口(以太网). 热敏打印机速度较快,打印的时候噪音少,针打可以使用多联纸自 ...

  8. 让 Odoo POS 支持廉价小票打印机

    为了测试 Odoo 在实际业务中的实施,我们开了一家(马上要开第二家分店)猪肉店.由于预算有限,在实施 Odoo PoS 的时候采购了一台价格为 85 元的爱宝热敏打印机,结果连上 Odoo Posb ...

  9. Atitit.收银系统pos 以及打印功能的行业标准

    Atitit.收银系统pos 以及打印功能的行业标准 1. ESC指令序列 Escape指令序列不同于ESC/POS指令 1 2. 打印标准OPOS POSPrinter 与 CashDrawer 驱 ...

随机推荐

  1. 使用fckeditor上传多张图片

    流程: 1.使用fck上传图片到后台 2.后台上传图片到服务器端 3.服务器端返回上传信息 1.jsp页面 <script type="text/javascript"> ...

  2. postman发送json请求

    简介: postman是一个很好的http模拟器,在测试rest服务时是很好用的工具,可以发送get.post.put等各种请求. 发送json的具体步骤: 1.选择post请求方式,同时将heade ...

  3. python写机器人玩僵尸骰子

    python写机器人玩僵尸骰子由Al Sweigart用python发布注意:我正在为我的僵尸骰子模拟器寻找反馈,以及这一套指令.如果你觉得有什么地方可以改进,请发邮件到al@inventwithpy ...

  4. 树形DP+RMQ+尺取法 hdu4123

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4123 参考博客:两种解法-树形dp+二分+单调队列(或RMQ)-hdu-4123-Bob’s Race ...

  5. mutex 互斥量

    有用参考:http://blog.csdn.net/yl2isoft/article/details/46003467 摘抄记录:using System.Threading; class Examp ...

  6. 100-days: Three

    Title: Singapore(新加坡) set to raise retirement ages as seniors stay healthier be set to do sth.  准备做某 ...

  7. 转)VCSA 6.5重启无法访问,报错“503 Service Unavailable”的解决方法

    1. 问题 重启vcenter,登陆vsphere client,提示 “503 Service Unavailable (Failed to connect to endpoint: [N7Vmac ...

  8. ubuntu系列-很好用的截图工具shutter

    直接在ubuntu软件市场中搜索“shutter”下载即可

  9. java Scanner类注意事项

    1,循环或递归调用获取数字时,不能用hasNextInt()判断是否有输入,不然会陷入死循环,应该用hasNext().获取也不能用nextInt(),应用next(),否则也会死循环 例如这段代码, ...

  10. 关于变量参数的传递,python让人蛋痛的地方

    def find_file(file_table): with open(file_table, 'r', encoding='utf-8') as read_f: line_dict = {} fo ...