1. 程式人生 > >不要驅動,簡單粗暴的用樹莓派驅動USB印表機

不要驅動,簡單粗暴的用樹莓派驅動USB印表機

stampa

網上很多文章都是再說如何用樹莓派來做一個通用列印伺服器,但是在很多應用場景下,配置CUPS什麼的真的是自己zuo自己die的好途徑,各類linux下的驅動配置起來令人吐血。而驅動各種熱敏票據印表機,比如打膠帶啊,二維碼貼紙啊,小票之類的印表機因為根本找不到linux的驅動,要搞起來更是Mission Imposiable。所以本文的目的就是為了不用驅動直接用USB介面的各類熱敏印表機。因為沒有驅動,所以我們只能用簡單粗暴的方式通過USB直接操作印表機了。下面來看看怎麼搞:

首先,你得有一臺印表機,淘寶有賣的,幾十元到一兩百,可以打熱敏膠帶,所以做個列印伺服器標籤的東西也不錯的,其他用途可以自行開發。

先把印表機用usb線接到樹莓派上,然後在樹莓派執行 lsusb 命令,這個時候會列表連線上的所有usb裝置,如下:

1 2 3 4 5 6 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的程式碼裡安裝才不會出問題。所以只能用這樣子的方式來安裝才行。

1 2 3 git clone https://github.com/walac/pyusb.git cd pyusb python setup.py install

安裝好後我們就可以通過usb介面來操作印表機了,由於大多數印表機都支援EPSON的列印協議(很古老的協議了,所以到處都支援),所以我們可以安裝一個叫python-escpos 的庫來通過python-usb來用EPSON的協議操作印表機。

1 sudo pip install python-escpos

但是此處還是有坑,因為這貨的文件基本上和實際情況就是牛頭不對馬嘴。所以就別管這貨的文件了。

1 2 from escpos import * pt = printer.Usb(0x0fe6, 0x811e, 0, out_ep=0x03)

此處要注意 out_ep 不能用預設值,預設的鐵定打不了,但是這裡的封裝又有問題不能去自動獲取,所以下面給一段自動獲取 out_ep 的程式碼

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 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,所以我就寫的這個值。 之後呢就可以愉快的列印了:

1 2 3 4 5 6 7 8 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()#關閉連線

祝玩得愉快。

相關推薦

不要驅動簡單粗暴樹莓驅動USB印表機

網上很多文章都是再說如何用樹莓派來做一個通用列印伺服器,但是在很多應用場景下,配置CUPS什麼的真的是自己zuo自己die的好途徑,各類linux下的驅動配置起來令人吐血。而驅動各種熱敏票據印表機,比如打膠帶啊,二維碼貼紙啊,小票之類的印表機因為根本找不到linux的驅動

學習樹莓驅動LED燈閃爍

個人網站: 黑客攻防學習課程: 號外:新課上線啦~~ 電腦端學習入口: 手機端學習入口:請掃二維碼~ 如果本部落格對你的有所幫助,不妨小額打賞下博主,您的鼓勵是我不斷寫部落格的動力。關於金額多少隨意,心意到就好。博主萬分感

樹莓搭建你自己的Web伺服器以及一個可以外網訪問的Blog

先決條件很簡單,樹莓派或是其他開發板甚至是LinuxPC,路由器。 我使用的是一代樹莓派b+,記憶體512M加上超頻到極限的單核處理器,實在是無法與樹莓派2相媲美,不得已只好選擇相對輕量的環境完成這項

樹莓實現RGB LED的顏色控制——C語言版本號

個數 hang clu 代碼 stdio.h 標準 tro color sage 用樹莓派實現RGB LED的顏色控制 RGB色彩模式是工業界的一種顏色標準。是通過對紅(R)、綠(G)、藍(B)三個顏色通道的變化

Google工程師:教你樹莓+Arduino+TensorFlow搭建圖像識別小車

href ble ogl dds .com ybds xls ddx wpa 6o呢鄰譚yq禿究乜km著樟派http://masbjyxls.wikidot.com/od潘礁弊x3苯悅詡lb厴勻瘓http://rhzwsbjsfz.wikidot.com/yc崗誦新oq儷簇

去重算法簡單粗暴&優化版

一個 dag 代碼 text 下標 數組 repeat 次數 style Remove Repeat 一、去重原理   1、進行排序   2、判斷是否滿足 ‘兩個字符串相同‘ 的條件,相同則累加重復次數,並使用continue繼續下一次循環   3、當條件不滿足時,將該

SecureCRT Win免安裝版本簡單

load linu ike 必備 -o 下載 ssh1 upload view SecureCRT是一款支持SSH(SSH1和SSH2)的終端仿真程序,簡單地說是Windows下登錄UNIX或Linux服務器主機的軟件。 這個簡單好用,程序員必備。 下載地址:S

樹莓Raspberry Pi和Micro:bit做一個自拍器

clear microsoft 編程 告訴 pac 文本編程 裝配 -a 按鈕 在這個項目中,我們將使用Python來構建一個由Micro:bit觸發樹莓派Raspberry Pi和相機模塊的自拍器。這是開始使用硬件和簡單文本編程的好方法。 我們將學習: 如何設置Raspb

論文參考文獻批量改為上角標簡單!!!

寫論文碰到了好多排版問題,我使用的是word2016,不過別的版本應該都差不多。 交叉引用的作用大家應該都清楚(不清楚百度一下),但是寫完之後才發現參考文獻的引用標號需要上角標格式。網上搜索發現好多方法,基本都是使用下邊這種萬用字元 \[*\] ,但是裡邊的*是代表所有字元的,經常會

**樹莓實現根據溫度自動開關風扇**

樹莓派因為價格價格低,效能好的原因非常受極客推崇,最近入手了一個樹莓派3B,想用它做點東西玩玩,畢竟也是想通過樹莓派學習一些東西的。所以想到了用樹莓派做一個根據溫度自動開關風扇的作品。 材料準備: 溫度感測器 DH11 一個 樹莓派3B 一個 繼電器 一個 小風扇 一個 **成品

樹莓在B站24小時直播音樂

第一步:安裝ffmpeg和解碼器 先安裝解碼器(注意要一句一句執行……) sudo git clone git://git.videolan.org/x264 cd x264 sudo ./configure --host=arm-unknown-linux-gnueabi --enab

Android 國際化語言設定簡單粗暴

在網上看了一大堆。核心程式碼就是那幾句,但是,還有的細節可能沒注意導致 無法改變。 直接貼程式碼。 public void setLanguage(int type){ Resources resources=getResources();//獲得res資源物件

eclipse原始碼java反編譯外掛簡單

第一步 在eclipse安裝路徑下的dropins資料夾下面放入反編譯外掛   重啟eclipse 第二步 設定 1.Window > Preferences > General > Editors > File Associatio

樹莓安裝samba實現區域網訪問樹莓

 1.  安裝samba    sudo apt-get install samba    2.  修改samba配置, sudo vim /etc/samba/smb.conf 如果目錄下沒有這個檔案,

[C language] 利用libexpat 解析XML簡單

libexpat.so解析xml使用非常方便 著名的Wayland也使用了此庫解析XML,俗稱:協議protocol. test_expat.c: #include <stdio.h> #include <string> #include <

VMware虛擬機器中linux CentOS7上網聯網簡單粗暴親測有效

看了網上很多教程,說說我是怎麼做到讓CentOS上網的,我的步驟很簡單 選中我們的虛擬機器例項,右鍵,點選設定,進入以下介面 從左到右依次點選標註地方,設定我們的網路連線為NAT模式, 然後啟動虛擬機器,輸入指令:ls  /etc/sysconfig/network

Android控制手電筒程式碼簡單不需要任何許可權

1.控制手電筒開關的工具類:public class FlashUtils { private CameraManager manager; private Camera mCamera = null; private Context context;

Gitea 1.6.2 釋出簡單的自助 Git 服務

   Gitea 的首要目標是建立一個極易安裝,執行非常快速,安裝和使用體驗良好的自建 Git 服務。專案採用 Go 作為後端語言,只要生成一個可執行程式即可。並且他還支援跨平臺,支援 Linux、 macOS 和 Windows 以及各種架構,除了x86、amd64,還包括

css超出省略一行省略兩行省略簡單粗暴

超出一行省略: p{ white-space:nowrap; overflow:hidden; text-overflow:ellipsis; } 超出2行省略: p { overflow : hidden; text-overflow: ellipsis; d

樹梅派應用18:樹莓DIY一個智慧家居伺服器

其實這東西我自己已經用了一年了~現在就來寫個教程~嘿嘿…… 先上個圖 有點亂23333 這是我的房間書櫃,也是我的工作臺……書櫃的側邊是樹莓派搭建的物聯網伺服器~ 來一隻近圖~ 這就是伺服器的近照啦~ 我用的是樹莓派A+作為伺服器的主控,所有的工作都由它完成。 樹莓派A+是