EPSON票據印表機列印LOGO圖片的一種方法
之前用過一個進入點陣圖模式的ESC指令來列印Logo圖片,但是打印出來的效果很差勁
今天發現一種列印圖片的辦法打印出來的效果比較好,其過程就是先把BMP圖片檔案上傳到印表機裝置中,然後在傳送一串自定義指令就可以打印出來Logo了,這裡是拿EPSON印表機來舉例
1. 安裝印表機驅動
因為驅動程式裡面有上傳BMP圖片到印表機的功能,裝好驅動後選擇印表機右鍵 屬性你就可以看到如下圖
點選Logo按鈕即可開啟logo上傳程式了
首先在這個介面點選 Open file.. 選擇一張BMP格式的圖片,如果提示不支援,那麼請到這個網址轉換一下BMP格式
這個介面是上傳選項卡,key code選擇 Custom,然後我們填入一個自定義Code 48,49 ,為什麼要填入key Code?
因為可以上傳多張BMP圖片,傳送列印的時候這個key code就尤為關鍵了,最後就點選Upload Device,當提示成功後進入Logo Printout選項卡
在這個介面看到了有Get key code按鈕,點選這個按鈕即可獲取所有上傳的圖片的key code,獲取到之後就可以選擇一個key code然後點選print按鈕即可列印了
2. 傳送的指令
當我點選Print按鈕的時候,此時這個程式傳送列印圖片指令給印表機,如果程式想要呼叫肯定要得知傳送了什麼指令吧,
所以我就下載了個串列埠指令監聽工具,監聽內容如下
最後得知關鍵是這行指令來列印圖片的,其中關鍵的就是30,31 因為這裡是十六進位制的,如果把30,31轉換成十進位制就是 48,49
所以30,31就是key code
1B 40 1D 28 4C 06 00 30 45 30 31 01 01
最後用程式碼寫入一段這樣的byte陣列就可以列印logo了
comm.Write(new byte[] { 0x1B, 0x40, 0x1D, 0x28, 0x4C, 0x06, 0x00, 0x30, 0x45, 0x30, 0x31, 0x01, 0x01 });
這樣的列印預設是左對齊方式,如果想要列印的圖片居中,請在圖片左邊填補空白內容
最後附上一張效果圖