网上很多文章都是再说如何用树莓派来做一个通用打印服务器,但是在很多应用场景下,配置CUPS什么的真的是自己zuo自己die的好途径,各类linux下的驱动配置起来令人吐血。而驱动各种热敏票据打印机,比如打胶带啊,二维码贴纸啊,小票之类的打印机因为根本找不到linux的驱动,要搞起来更是Mission Imposiable。所以本文的目的就是为了不用驱动直接用USB接口的各类热敏打印机。因为没有驱动,所以我们只能用简单粗暴的方式通过USB直接操作打印机了。下面来看看怎么搞:

首先,你得有一台打印机,淘宝有卖的,几十元到一两百,可以打热敏胶带,所以做个打印服务器标签的东西也不错的,其他用途可以自行开发。

先把打印机用usb线接到树莓派上,然后在树莓派执行 lsusb 命令,这个时候会列表连接上的所有usb设备,如下:

Bus 005 Device 001: ID 0000:0000

Bus 001 Device 001: ID 0000:0000

Bus 004 Device 001: ID 0000:0000

Bus 003 Device 001: ID 0000:0000

Bus 002 Device 006: ID 15d9:0a37

Bus 002 Device 001: ID 0000:0000

这个时候不知道谁是打印机呢!不过不要紧,你拔掉打印机的usb线后再执行一次,看缺谁,谁就是打印机了。

ID后冒号隔开的两个数字就是usb设备的 vendor ID和product Id了,记下来先,一会儿连接的时候有大用。

为了连接打印机,你需要安装python-usb这个库,用于直接通过usb接口来操作usb设备。本文的第一个坑就出在这里,因为pip库里的版本有一个bug的方式在后面的库会用到,所以必须用从github里最新的去除了bug的代码里安装才不会出问题。所以只能用这样子的方式来安装才行。

git clone https://github.com/walac/pyusb.git

cd pyusb

python setup.py install

安装好后我们就可以通过usb接口来操作打印机了,由于大多数打印机都支持EPSON的打印协议(很古老的协议了,所以到处都支持),所以我们可以安装一个叫python-escpos 的库来通过python-usb来用EPSON的协议操作打印机。

sudo pip install python-escpos

但是此处还是有坑,因为这货的文档基本上和实际情况就是牛头不对马嘴。所以就别管这货的文档了。

from escpos import *

pt = printer.Usb(0x0fe6, 0x811e, 0, out_ep=0x03)

此处要注意 out_ep 不能用默认值,默认的铁定打不了,但是这里的封装又有问题不能去自动获取,所以下面给一段自动获取 out_ep 的代码

import usb.core

import usb.util

import sys

dev = usb.core.find(idVendor= 0x5345, idProduct= 0x1234)

cfg = dev.get_active_configuration()

intf = cfg[(0,0)]

ep = usb.util.find_descriptor(

intf,

# match the first OUT endpoint

custom_match = \

lambda e: \

usb.util.endpoint_direction(e.bEndpointAddress) == \

usb.util.ENDPOINT_OUT

)

dev.reset()

我手头的打印机获取到的out_ep是0x03,所以我就写的这个值。 之后呢就可以愉快的打印了:

from escpos import *

usb = printer.Usb(0x0fe6, 0x811e, 0, out_ep=0x03)

usb.text(u"终于可以愉快的打印啦\n\n\n\n\n\n\n\n".encode('gbk'))

usb.image(‘image path’)#打印图片(黑白2值)

usb.qr(‘值’)#打印二维码

usb.set(codepage=None, align=‘center’)#设置页面居中

usb.cut()#切纸

usb.close()#关闭连接

祝玩得愉快。

python调用打印机驱动下载_不要驱动,简单粗暴的用树莓派驱动USB打印机相关推荐

  1. 不要驱动,简单粗暴的用树莓派驱动USB打印机

    不要驱动,简单粗暴的用树莓派驱动USB打印机 admin 2015年4月14日   5 Comments 网上很多文章都是再说如何用树莓派来做一个通用打印服务器,但是在很多应用场景下,配置CUPS什么 ...

  2. intel rst linux 驱动下载,英特尔RST快速存储技术驱动下载_英特尔RST快速存储技术驱动官方下载-太平洋下载中心...

    Intel出品的英特尔rst驱动即RST快速存储技术驱动整合了磁盘管理程序控制台及SATA.AHCI.RAID驱动程序,主要用于Intel芯片组的磁盘管理.应用支持.状态查看等应用. 使用SSD或者多 ...

  3. python使用requests库下载单张图片的简单示例

    python使用requests库下载单张图片的简单示例 简要说明 代码示例 简要说明 下载图片的核心代码如下: res = requests.get(url=img_url, headers=hea ...

  4. 三星 4521 linux 驱动下载,三星scx-4521f驱动下载_三星scx-4521f驱动官方下载-太平洋下载中心...

    三星scx-4521f驱动下载本驱动是SAMSUNG三星scx-4521f多功能一体打印机驱动,适用于WindowsXP以上的操作系统,方便用户更好的使用三星scx-4521f打印机的打印.复印.扫描 ...

  5. ac3168无线网卡驱动下载_更换BCM94360CS2网卡,拯救黑苹果无线网络

    不久前给手中这台机械革命Z2 (八代I5 GTX1060版本) 装上了黑苹果,无奈Mac无法驱动笔记本内置的英特尔网卡,再加上这块"英特尔 AC-9462"网卡的最高速度仅为433 ...

  6. ac3168无线网卡驱动下载_计算机基础:网卡

    简介 网卡.网络适配器或NIC (网络接口控制器)是一块被设计用来允许计算机在计算机网络上进行通讯的计算机硬件.由于其拥有MAC地址,因此属于OSI模型的第1层.它使得用户可以透过电缆或无线相互连接. ...

  7. xbox one驱动下载_如何从手机将游戏下载到Xbox One

    xbox one驱动下载 Xbox One games can be massive in size, and take hours to download. Rather than waiting ...

  8. wireless-ac 9462驱动下载_驱动精灵 v9.61去广告清爽版绿单文件版 下载更新备份电脑驱动工具...

    驱动精灵是一款集驱动管理和硬件检测于一体的.专业级的驱动管理和维护工具.驱动精灵为用户提供驱动备份.恢复.安装.删除.在线更新等实用功能.另外除了驱动备份恢复功能外,还提供了 Outlook 地址簿. ...

  9. qcom usb驱动下载_酷派5891Q usb驱动下载安装

    酷派5891Q的usb驱动有没有人需要的,和其它的酷派手机是一样的,因为手机在用数据线连接电脑的时候都是需要驱动的,说的这个驱动是安装在电脑上,很多人下载下来驱动之后不知道怎么进行安装,如果没有驱动的 ...

  10. 必联路由器linux系统,必联网卡驱动下载_硬件驱动下载

    硬件驱动描述 下载 [网卡驱动] B-Link必联BL-WDN3300/BL-3321N双频USB无线网卡驱动WIFI-EC-1版For WinXP/WinXP-64/Vista-32/Vista-6 ...

最新文章

  1. Essential Studio for mobile MVC如何创建一个Razor应用程序平台
  2. Go语言11岁了,网友:他喵的,终于确定出「泛型」了
  3. 如何让你的XP系统更加安全
  4. 波司登的高端之路,难走!
  5. 服务器发送消息技术,知识科普:IM聊天应用是如何将消息发送给对方的?(非技术篇)...
  6. linux安装ffmpeg版本太多,Linux安装FFmpeg的方法
  7. 我真的是前端公众号 NO.1 ?
  8. Spring_使用(JDBC)
  9. dbf如何导入oracle_Oracle软件的安装介质被注入恶意程序事件分析与防御
  10. python - - 函数 - - 递归函数
  11. 服务器装系统蓝屏怎么办,重装系统蓝屏怎么办
  12. c语言中药品管理系统报告,C语言 药品管理系统.doc
  13. PPT达人速成记 WPS三步打造演示母版
  14. 2021十大进销存软件排名
  15. 汽车电子行业入门指南「主要国内新能源车销量」
  16. 【操作系统】分区分配算法(首次适应算法、最佳适应算法)C语言
  17. springboot2集成shiro认证鉴权(上篇)
  18. JQ实现谷歌小恐龙小游戏
  19. requestLayout() improperly called by
  20. SQL高级教程(三十)- - SQL NULL 函数

热门文章

  1. SnakeYaml 嵌套Map写入格式 DumperOptions格式设置
  2. python批量解压rar和zip的压缩包
  3. C语言作业:统计素数并求和
  4. “fatal error C1083 ”无法打开包括文件
  5. Java 生产环境 linux下汉字变方框解决
  6. WEBMAX功能简述
  7. WindRiver workbench 建立工程步骤
  8. doe五步法_实验设计(DOE)的七大步骤分析
  9. SIFT特征匹配及其实现
  10. Webservice原理解析