问题详细描述(症状)

涉及工业级打印产品

普印力(Printronix)品牌的P8000和P7000系列工业级高速行式打印机、T5r系列热敏标签条码打印机、T4M型号热敏标签条码打印机和L7032工业激光打印机。

打印问题症状描述

如何在上述工业级打印机上使用PGL仿真指令的语法来让PDF417二维条形码自动适应一个给定的打印宽度或打印区域?

问题回复解答

可能原因分析

PDF417二维条形码可以通过编程来适应一个给定的打印区域,不会超出该区域的边界。Wn参数应该设置一个最大宽度值,但不会响应某些Wn的取值。在这种情况下,所使用的打印参数会造成PGL仿真指令提示超出纸张区域的错误(PGL off-page error)。

推荐解决方案

办法就是在想要的最大宽度限制内灵活计算生成PDF417二维条形码的横向X维度(X-dimension)尺寸。如果使用了这个数值的X维度尺寸,甚至小于这个尺寸的宽度,就可以利用Wn参数来设置二维码的最大允许宽度。根据打印机可能接受的最小X维度尺寸,所有的普印力(Printronix)品牌工业级打印机都设置有一个最小可能宽度Wn

PDF417二维条形码必须至少是X维度尺寸的85倍,而使用Wn参数就可以强制二维码缩小至十分之几(n/10)英寸的范围内。如果最大宽度参数Wn小于85倍的X维度参数(或X维度的默认值,前提是没有任何参数在用),就忽略Wn参数,转而在默认的屏幕纵横比(aspect ratio)下打印二维码。

PDF417能够在普印力的工业级击打式打印机(行式打印机和针式打印机的分类总称)、工业激光打印机和工业级热敏打印机上打印,前提是需要用到PGL仿真指令语言来操控这些工业级打印机,语法是:
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二维条形码呈矩形,由多行和多列构成,其所有列均为等宽,每行的行高和Y参数相同,每列的列宽都是X参数的宽度的17倍。注意:Xn测量的增量单位是1/60英寸(1/60"),Yn测量的增量单位是1/72英寸(1/72"),而XDnYDn测量的则是打印头分辨率的增量,这个增量根据所用工业级打印机的不同而不同。XnXDn参数的宽度也叫做X维度(X-dimension)尺寸。X参数和Y参数的每个都是可选的,默认取值是X1Y2,所以默认的X维度尺寸是16.7毫英寸(mil),相当于1/60英寸(1/60")。

推荐用下面5种方法中的1种来限制PDF417二维条形码的水平和垂直长度范围。对于已知清晰度的二维码,只允许在其上应用5个参数中的一个。如果没有应用这个5个参数的任何一个,二维码则以2:1的屏幕纵横比来打印(行数与数据列数的比值)。

PDF417二维条形码可以使用Wn参数来重新定义一个以英寸为计量单位的最大宽度,该最大宽度是0.10英寸(0.10")的n倍。然而,总是会有一个最小宽度。每行包含了4个开销列和至少1个数据列,而每列正好是XnXDn参数的17倍。所以用Wn定义的最大宽度必须大于等于数据所需的最小长度,即Wn≥(5 列)*(17 X维度/列)*(Xn 英寸/X维度)。

当X维度尺寸以打印的像素点数(dots)量来表示,同时以每英寸点数(dots per inch或dpi)来表示打印分辨率,Wn≥(5 列 * 17 X维度/列)*(XDn 点数/X维度)/(dpi)。

默认的X维度参数是X1,其中X维度等于1/60英寸(1/60”)或0.017英寸(0.017")。一个0.017"X维度所对应的Wn最小值是:Wn = 5 * 17 * 0.017" = 1.45",所以向上取整就是n=15(1英寸宽度的十分之15)。这表示带有16.7 mil打印头针尖的击打式打印机不能打印生成一个小于1.45"宽的PDF417二维条形码。

在一台300dpi的工业级打印机上,生成最大为1英寸(1")宽二维码的X维度可用下面的方法计算:
W10 = 1.0″ 最大宽度 ≥ 5 * 17 *(XDn 点/300dpi),所以n ≤ 300 /(5*17)或n ≤ 3,其中n就表示所有一系列的像素点。在一台300dpi的工业级打印机上,当X维度=10 mils且总宽度<1"之时,请将XD3;W10应用于二维码清晰度。

如果打印PDF417二维条形码时所用的Wn宽度参数缺少足够空间在给定的X维度尺寸下容纳至少一个数据列,就忽略该Wn参数,因为此时无法打印输出。在这种情况下会以默认的屏幕纵横比来打印二维码,该纵横比的比值=两个行:每个数据列。这不会产生一个PGL仿真指令的二维码错误(PGL barcode error),而且如果二维码能适应纸张大小,打印将顺利进行,二维码宽度全由数据来决定。

打印输出的二维条形码可能会比Wn参数显示的数值宽出很多,甚至可能延伸到所处理的表格或表单之外,从而产生一个PGL仿真指令的超出纸张区域错误(PGL off-page error)。解决方案就是计算最大X维度尺寸,使之生成原先想要的宽度,然后检查一下设计规范是否允许使用这个X维度尺寸,或这个X维度尺寸是否可能用于工业级打印机。有必要将取值适当的XnXDn参数和Wn参数打包到一起,以保证打印出来的二维码跟预期一模一样。

上一常见问题解答:无法用Windows操作系统的软件向导安装打印机64位设备驱动程序
下一常见问题解答:用爱普生的Windows设备驱动安装程序替代高速行式打印机驱动软件