2017-05-22 1584 views
0

我想用ESC POS命令ESC *打印位圖標誌文件。 以下是命令技術文檔的鏈接。ESC POS命令ESC *用於在打印機上打印位圖

https://reference.epson-biz.com/modules/ref_escpos/index.php?content_id=88

據我來說,打印機需要在0和1的形式的圖像數據。因此,它打印一個點,出現1和空白,發生0。 但我無法弄清楚如何在上述命令的幫助下發送多行位圖像數據,因爲該命令僅接受圖像數據在水平方向上。請幫我解決這個問題。

回答

2

ESC *是ESC/POS中的幾個「位圖」命令之一。它接受「列格式」數據,它只能表示一行8或24像素的單行。所以這裏有兩個很好的選擇。

打印多行使用ESC *

這聽起來像你能夠打印一行,所以我會假設數據格式本身不是一個問題。

您可以通過簡單地重複打印多餘行的命令來打印多行,並用換行符\n分隔。這需要剪切圖像,並使用空格填充圖像,使其成爲8或24像素高度的倍數(再次,由於格式)。

由於行間距,您需要發出一個命令來更改圖像打印期間換行符的大小,然後是另一個命令以在最後重置它們。

我使用ESC 3 0x10來重置16單元換行(字節0x1b 0x33 0x10)和ESC 2(字節0x1b 0x32)。

這種打印方法與舊打印機的優異的相容性,但你可以在輸出一些細的水平線。

打印與GS v 0

整個圖像,該位圖像命令接受不同的「柵格格式」的數據。我使用這種格式的blob與廣泛使用的PBM位圖格式(特別是帶有P4標頭的文件中的二進制數據)中的二進制數據相同的事實。

圖像的高度將受到打印緩衝區大小的限制,但可能會高達65535像素。由於表示,寬度必須可以被8整除。

旁註:這些片段的,現在出現在流行的開源escpos-phppython-escpos庫中的圖像處理代碼中的實際原型。使用現有的庫有很多好處,如果它是一個選項,您應該考慮它。

相關問題