前言
隨著熱敏印表機的廣泛應用,需要列印的內容除了列印文字之外,還需要列印一維碼、二維碼、圖片等,如何快速有效的列印,如何對內容進行排版。開發者往往只會用廠家提供的SDK來進行開發,很多時候都是糊里糊塗的進行一些微調達到最終的效果。這是對印表機的原理不清楚造成的,廠家也沒有對此進行過多的解釋,所以針對這個問題,這篇文章將從原理上幫助開發者來理解印表機
在圖文排版之前需要把印表機的規格書看懂,瞭解印表機的基本知識
一、解析度
在購買印表機的時候,一定要看印表機的解析度是多少,常見的印表機解析度有203dpi,300dpi,600dpi等。市場上的印表機以203dpi為主。
dpi 的英文是 dot per inch,也就是每英寸的點數,203dpi 也就是203點/inch,1inch=25.4mm,也就是說 203點/25.4mm, 換算下來就是 8 點/mm. 一定要記住每毫米8個點,每毫米8個點,每毫米8個點,重要的重複3遍
熱敏印表機都是以點為單位來進行排版計算的
二、列印寬度
印表機的有效列印寬度和紙張寬度是不一樣的。常見的小票機規格書上描述的寬度如 58mm、80mm等。 要看清楚這是紙寬,不是列印寬度,如果規格書上列印寬度寫的58mm、80mm等,那一定是規格書寫錯了。 記住這幾個值是紙寬,紙寬,紙寬。 前面規格書上寫的介質寬幅和紙張寬度是一個意思,介質就是列印材質的意思。
紙張寬度=列印寬度+左右邊距
紙張寬度 | 有效列印寬度 | 頁邊距 |
58mm | 48mm | 5mm |
80mm | 72mm | 4mm |
對應前面學的解析度知識,如果機器是203dpi,那麼對應的有效列印點數就是
有效列印寬度 | 有效列印點數 |
48mm | 384點(48*8) |
72mm | 576點(72*8) |
熱敏印表機都是以點為單位來進行排版計算的,所以記住58mm印表機對應的每行有效列印點數是384點,80mm印表機對應有效點數為576點。
三、字型
我們看到規格書上寫的字型種類分為3種,FontA 12*24點,FontB 9*17點,漢字24*24點。這是什麼意思呢?
一般描述字型大小時,是按照 寬*高點來描述的,也就是 FontA 寬12點,高24點;FontB 寬9點,高17點;漢字 寬24點,高24點。
注意一般小票印表機使用的是點陣字型,也是等寬字型, 和我們看到的word上的一些向量字型是不同的。有些向量字型的 w和l寬度佔用的空間寬度是不一樣的。 而一般小票印表機上的 w和l佔用的空間寬度是一樣的。 這個你們可以實際列印看一下。 小票機一般是用的等寬字型.
四、列印指令
印表機的指令,也就是印表機的通訊協議。是上位機控制印表機操作的命令。常見的指令有ESC/POS,TSPL、ZPL、CPCL。 這些協議之所以通用,是因為規定這些指令的公司強勢,哪家公司強勢、產品普及率高、指令就用的更廣泛。 不同的通訊協議,控制印表機的語言和通訊格式會有很大不一樣。 但是列印的本質是其實還是列印文字、圖片、條碼。所以不管指令怎麼變,都是圍繞列印的基本功能來描述。
五、小試牛刀
根據前面介紹的內容,我們其實可以知道。對於小票印表機而言,一個漢字等於2個字元的寬度。
58mm的印表機,一行可以列印16個漢字,32個FontA,42個FontB
80mm的印表機,一行可以列印24個漢字,48個FontA,64個FontB
不知道怎麼計算的可以留言
總結
本文先介紹了印表機的基本知識,掌握了基本知識後,後面在針對具體的每種通訊協議怎麼控制排版再做詳細的介紹