在標(biāo)簽打印中,斑馬Zebra打印機(jī)可以說是非常流行的,可以說是占據(jù)著壟斷地位;同時在二維碼的世界里,隨著智能機(jī)的普及,如今QR碼是越來越流行了。QR碼更多的是在互聯(lián)網(wǎng)應(yīng)用中普及,雖然在工業(yè)領(lǐng)域沒有互聯(lián)網(wǎng)應(yīng)用中那么普及,但現(xiàn)在也是越來越流行了。在實際使用中,你會驚奇地發(fā)現(xiàn)到目前為止,Zebra對QR碼的支持還不是那么完美——無法直接設(shè)置QR碼大小。不用懷疑,確實不支持,否則筆者也不會挑這個話題了。
斑馬打印機(jī),我們通常都是用的ZPL(Zebra Programming Language)。其中對于QR碼支持的指令如下圖所示:其主指令是BQ,參數(shù)分別有a,b,c,d,e,其中只有參數(shù)c (magnification factor)有一定的調(diào)節(jié)大小的作用,但是這個作用是非常有限的。顧名思義,這個參數(shù)是設(shè)置放大倍數(shù)的,而且只支持1到10,而且不支持小數(shù)。其本意也只是用于適配不同精度的打印機(jī)的,并不是用來設(shè)置條碼大小的。
斑馬打印機(jī)對于二維碼QR碼的大小,目前的主要依據(jù)是條碼的內(nèi)容。也就是說,條碼內(nèi)容越長,越多,其原聲QR碼就越大。
針對這個局限性現(xiàn)提出3或者4種“解決”辦法,打引號的意思是這幾種辦法都并不算完美。
第一種,對于條碼內(nèi)容大小固定的QR碼,可以首先使用上面提到的magnification factor這個參數(shù)來調(diào)節(jié)。如果正好能調(diào)整到期望的大小或者接近期望大小,那么恭喜你,這是最簡單的辦法,簡單的同時其弊端也是顯而易見的——不能保證都適用,而且湊出來的大小并不精確。
第二種,對于條碼內(nèi)容大小固定或相差不大的QR碼,使用空格或其他不可見的字符來填充,直到填充到期望的大小。當(dāng)然同時也可以配合第一種方法一起調(diào)整。這個辦法談不上簡單,也算不上復(fù)雜,但是還是能解決一部分問題。弊端也是顯而易見的——多余的字符可能會影響QR碼的讀取與解析,另外就是也影響了條碼的解析度,QR碼單位面積內(nèi)所包含的字符越多,其線條越精細(xì),對于掃碼設(shè)備的解析精度要求越高,同理也適用于打印機(jī)。
第三種,也是對于條碼內(nèi)容大小固定或相差不大的QR碼,使用指令MU來放大調(diào)節(jié)整個標(biāo)簽,也可以跟第一種方法配合著調(diào)整。如下圖所示,MU指令一共有3個參數(shù),a,b,c。這個放大原理是重新虛擬一個打印精細(xì)度,比如我們通常所說的300DPI或600DPI(dot per inch),是指每英寸單元打印的像素點。虛擬放大之后,自然也就調(diào)整了QR碼的大小了。其弊端也是顯而易見的——這種放大后的打印精度會降低,而且這個調(diào)整是全局的,是對整個條碼標(biāo)簽的調(diào)整,無法只針對QR部分進(jìn)行調(diào)整。
第四種,堪稱一種最完美的辦法,當(dāng)然也是最復(fù)雜的一種辦法了。原理就是通過第三方軟件或API生成一個指定大小與格式的QR碼圖片,然后通過打印機(jī)調(diào)用圖片來進(jìn)行打印。這種方法當(dāng)然也就從根本上解決了問題,不限制條碼內(nèi)容大小。弊端當(dāng)然也是顯而易見的——一個“第三方”既可以說是沒有限制也可以說是不確定的限制,因為限制來源于第三方。至于如何通過LabVIEW生成QR碼圖片,也是另外一個話題了。有興趣了解的,可以在文后留言,后面可以寫相關(guān)的話題。