Epson Pos Printer for .net
注:因发现各网站爬虫随意收集文章,故做此声明:版权归原作者(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的更多相关文章
- (转)TCP注册端口号大全
分类: 网络与安全 cisco-sccp 2000/tcp Cisco SCCPcisco-sccp 2000/udp Cisco SCCp# Dan Wing <dwing&cisco ...
- 设备管理 USB ID
发现个USB ID站点,对于做设备管理识别的小伙伴特别实用 http://www.linux-usb.org/usb.ids 附录: # # List of USB ID's # # Maintain ...
- CentOS 7 服务端口表
# Note that it is presently the policy of IANA to assign a single well-known# port number for both T ...
- 收银台(POSBox) 配置向导
先决条件 在开始设置您的POSBox之前, 确保你准备好了一切. 你会需要 : POSBox 2A电源适配器 一台带最新的Web浏览器的计算机或平板电脑. 可用的的SaaS或已安装零售的Odoo 设置 ...
- FastReport经验
FastReport经验 1.FastReport中如果访问报表中的对象? 可以使用FindObject方法. TfrxMemoView(frxReport1.FindObject(’memo1′)) ...
- python3 驱动自动安装脚本
from pywinauto.application import Applicationimport osimport timeos.system('start C:/Users/Administr ...
- 怎样做出通用的pos小票打印程序
POS小票打印机分为热敏和针式俩种. 打印纸的宽度分为58毫米.76毫米和80毫米三种. 打印接口分为:串口.并口.USB和网口(以太网). 热敏打印机速度较快,打印的时候噪音少,针打可以使用多联纸自 ...
- 让 Odoo POS 支持廉价小票打印机
为了测试 Odoo 在实际业务中的实施,我们开了一家(马上要开第二家分店)猪肉店.由于预算有限,在实施 Odoo PoS 的时候采购了一台价格为 85 元的爱宝热敏打印机,结果连上 Odoo Posb ...
- Atitit.收银系统pos 以及打印功能的行业标准
Atitit.收银系统pos 以及打印功能的行业标准 1. ESC指令序列 Escape指令序列不同于ESC/POS指令 1 2. 打印标准OPOS POSPrinter 与 CashDrawer 驱 ...
随机推荐
- spring分页
1.Brand 商品品牌类 public class Brand { private Integer id; private String name; private String descripti ...
- 手机端用swiper组件 轮播图设置后右侧出现空白 及 部分手机浏览器打开网页空白
我的方法是设置内容css overflow:hidden;width:100%; ok. 之前搜到一个方法也可以,就是设置css height: auto;overflow-y: scroll; 但是 ...
- 164. Maximum Gap (Array; sort)
Given an unsorted array, find the maximum difference between the successive elements in its sorted f ...
- WdatePicker控件Javascript取得当前时间、取得减30分钟时间
1.取得当前时间 function getNowFormatDate() { var date = new Date(); var seperator1 = "-"; var se ...
- oracle 中从某天到某天一天一次执行某个函数
DECLAREv_days INTEGER;v_start VARCHAR2(10);v_end VARCHAR2(10);v_3 INTEGER;v_enddays date;begin v_sta ...
- Python开发【第四篇】:模块
双层装饰器示例 __author__ = 'Golden' #!/usr/bin/env python # -*- coding:utf-8 -*- USER_INFO = {} de ...
- 关于viewport我自己的理解
其实即使不在html中添加meta viewport标签,每个移动端浏览器都会有一个默认的viewport,只是这个viewport的宽度是980,然后做1:3或者1:2的自动缩放.所以当不在html ...
- composer ip2city配置
//根据ip获取地址信息composer require "mylukin/ip2city: dev-master" // vendor/mylukin/ip2city/src/I ...
- 关于vuex状态管理模式架构
一. 什么是vuex 集中存储管理所有组件的状态 并以相应的规则保证以一种可预测的方式发生变化. 例子: 实现加减 <p>{{count}} <button @click=" ...
- Android Studio 检查Top Activity
public void CheckTop(String packagename,int casenum) { Context context = getBaseContext(); ActivityM ...