通告和問題描述(癥狀)
涉及工業(yè)級打印產(chǎn)品
普印力(Printronix)品牌的P8000和P7000系列工業(yè)級高速行式打印機、T5r系列熱敏標(biāo)簽條碼打印機、T4M型號熱敏標(biāo)簽條碼打印機和L7032工業(yè)激光打印機。
打印問題癥狀描述
如何在上述工業(yè)級打印機上使用PGL仿真指令的語法來讓PDF417二維條形碼自動適應(yīng)一個給定的打印寬度或打印區(qū)域?
問題回復(fù)解答
可能原因分析
PDF417二維條形碼可以通過編程來適應(yīng)一個給定的打印區(qū)域,不會超出該區(qū)域的邊界。Wn參數(shù)應(yīng)該設(shè)置一個最大寬度值,但不會響應(yīng)某些Wn的取值。在這種情況下,所使用的打印參數(shù)會造成PGL仿真指令提示超出紙張區(qū)域的錯誤(PGL off-page error)。
推薦解決方案
辦法就是在想要的最大寬度限制內(nèi)靈活計算生成PDF417二維條形碼的橫向X維度(X-dimension)尺寸。如果使用了這個數(shù)值的X維度尺寸,甚至小于這個尺寸的寬度,就可以利用Wn參數(shù)來設(shè)置二維碼的最大允許寬度。根據(jù)打印機可能接受的最小X維度尺寸,所有的普印力(Printronix)品牌工業(yè)級打印機都設(shè)置有一個最小可能寬度Wn。
PDF417二維條形碼必須至少是X維度尺寸的85倍,而使用Wn參數(shù)就可以強制二維碼縮小至十分之幾(n/10)英寸的范圍內(nèi)。如果最大寬度參數(shù)Wn小于85倍的X維度參數(shù)(或X維度的默認(rèn)值,前提是沒有任何參數(shù)在用),就忽略Wn參數(shù),轉(zhuǎn)而在默認(rèn)的屏幕縱橫比(aspect ratio)下打印二維碼。
PDF417能夠在普印力的工業(yè)級擊打式打印機(行式打印機和針式打印機的分類總稱)、工業(yè)激光打印機和工業(yè)級熱敏打印機上打印,前提是需要用到PGL仿真指令語言來操控這些工業(yè)級打印機,語法是:BARCODE
PDF417
[DIR;][X[D]n;][Y[D]n;]Hn|Wn;]|[ASPECT;h:w;]|[Rn|Cn;[Sn;][BFn;L;][DARK;]SR;SC
(D)data field(D)
STOP
PDF417二維條形碼呈矩形,由多行和多列構(gòu)成,其所有列均為等寬,每行的行高和Y參數(shù)相同,每列的列寬都是X參數(shù)的寬度的17倍。注意:Xn測量的增量單位是1/60英寸(1/60"),Yn測量的增量單位是1/72英寸(1/72"),而XDn和YDn測量的則是打印頭分辨率的增量,這個增量根據(jù)所用工業(yè)級打印機的不同而不同。Xn或XDn參數(shù)的寬度也叫做X維度(X-dimension)尺寸。X參數(shù)和Y參數(shù)的每個都是可選的,默認(rèn)取值是X1和Y2,所以默認(rèn)的X維度尺寸是16.7毫英寸(mil),相當(dāng)于1/60英寸(1/60")。
推薦用下面5種方法中的1種來限制PDF417二維條形碼的水平和垂直長度范圍。對于已知清晰度的二維碼,只允許在其上應(yīng)用5個參數(shù)中的一個。如果沒有應(yīng)用這個5個參數(shù)的任何一個,二維碼則以2:1的屏幕縱橫比來打?。ㄐ袛?shù)與數(shù)據(jù)列數(shù)的比值)。
Hn;參數(shù):表示以1/10英寸(1/10")增量單位來衡量的高度Wn;參數(shù):表示以1/10英寸(1/10")增量單位來衡量的寬度ASPECT;h:w;參數(shù):表示屏幕縱橫比,高度:寬度(注意:如果缺省不輸入此參數(shù),則默認(rèn)設(shè)置為2:1)Rn;參數(shù):表示行數(shù)- 數(shù)據(jù)列的數(shù)量(注意:每行也包含了4個開銷列,所以C1打印5個匯總列)
PDF417二維條形碼可以使用Wn參數(shù)來重新定義一個以英寸為計量單位的最大寬度,該最大寬度是0.10英寸(0.10")的n倍。然而,總是會有一個最小寬度。每行包含了4個開銷列和至少1個數(shù)據(jù)列,而每列正好是Xn或XDn參數(shù)的17倍。所以用Wn定義的最大寬度必須大于等于數(shù)據(jù)所需的最小長度,即Wn≥(5 列)*(17 X維度/列)*(Xn 英寸/X維度)。
當(dāng)X維度尺寸以打印的像素點數(shù)(dots)量來表示,同時以每英寸點數(shù)(dots per inch或dpi)來表示打印分辨率,Wn≥(5 列 * 17 X維度/列)*(XDn 點數(shù)/X維度)/(dpi)。
默認(rèn)的X維度參數(shù)是X1,其中X維度等于1/60英寸(1/60”)或0.017英寸(0.017")。一個0.017"X維度所對應(yīng)的Wn最小值是:Wn = 5 * 17 * 0.017" = 1.45",所以向上取整就是n=15(1英寸寬度的十分之15)。這表示帶有16.7 mil打印頭針尖的擊打式打印機不能打印生成一個小于1.45"寬的PDF417二維條形碼。
在一臺300dpi的工業(yè)級打印機上,生成最大為1英寸(1")寬二維碼的X維度可用下面的方法計算:
W10 = 1.0″ 最大寬度 ≥ 5 * 17 *(XDn 點/300dpi),所以n ≤ 300 /(5*17)或n ≤ 3,其中n就表示所有一系列的像素點。在一臺300dpi的工業(yè)級打印機上,當(dāng)X維度=10 mils且總寬度<1"之時,請將XD3;W10應(yīng)用于二維碼清晰度。
如果打印PDF417二維條形碼時所用的Wn寬度參數(shù)缺少足夠空間在給定的X維度尺寸下容納至少一個數(shù)據(jù)列,就忽略該Wn參數(shù),因為此時無法打印輸出。在這種情況下會以默認(rèn)的屏幕縱橫比來打印二維碼,該縱橫比的比值=兩個行:每個數(shù)據(jù)列。這不會產(chǎn)生一個PGL仿真指令的二維碼錯誤(PGL barcode error),而且如果二維碼能適應(yīng)紙張大小,打印將順利進(jìn)行,二維碼寬度全由數(shù)據(jù)來決定。
打印輸出的二維條形碼可能會比Wn參數(shù)顯示的數(shù)值寬出很多,甚至可能延伸到所處理的表格或表單之外,從而產(chǎn)生一個PGL仿真指令的超出紙張區(qū)域錯誤(PGL off-page error)。解決方案就是計算最大X維度尺寸,使之生成原先想要的寬度,然后檢查一下設(shè)計規(guī)范是否允許使用這個X維度尺寸,或這個X維度尺寸是否可能用于工業(yè)級打印機。有必要將取值適當(dāng)?shù)?code>Xn或XDn參數(shù)和Wn參數(shù)打包到一起,以保證打印出來的二維碼跟預(yù)期一模一樣。