缩小条宽或BWR是一种用于调整条形码的图形设计文件以补偿印刷机增益的方法。印刷增益或墨水扩散是条形码性能不佳的最常见原因之一。
我们已经成功实现了reportlab模块,可以将code128和i2of5条码放在我们的PDF上,它们可以很好地进行打印和扫描(该模块非常适合所有PDF!)。问题在于,对于我们的某些工厂而言,他们需要更多的压条宽度减小以补偿印刷机带来的额外收益,而我似乎无法正确实现这种行为。
我已经使用了从github上的reportlab代码中可以找到的许多属性-https://github.com/MatthewWilkes/reportlab/blob/master/src/reportlab/graphics/barcode/common.py-包括barWidth,Width,Gap,Ratio,并且似乎没有一个属性会改变bar宽度的减小。我测量一下。
我正在使用称为Pilot的ESKO软件来测量PDF上生成的条形码,该软件可让您在PDF上的条形码周围画一个方框,它会告诉您代码是否可以正确读取以及条形码的宽度值减少。
以下是页面上我们正在使用的条形码之一的示例代码。
from reportlab.graphics import barcode
from reportlab.lib.units import inch, pica
from reportlab.lib.colors import CMYKColor
code = 12345678
black_color = CMYKColor(0,0,0,1.0)
bcode_draw = barcode.createBarcodeDrawing('Code128',
barFillColor = black_color,
barStrokeColor = black_color,
textColor = black_color,
width=3.644 * inch,
height=1.214 * inch,
quiet=False,
barWidth=0.0085 * inch,
value="0" + str(code))
bcode_draw.translate(x * pica, y * pica)
self.drawing.add(bcode_draw)
结果是相同的条形码,具有相同的barWidth减少属性(-.04),无论我尝试操作什么值,我们都试图将其设为正数.0075。
我研究了一个名为TreePoem(https://github.com/adamchainz/treepoem/blob/master/treepoem/data.py)的模块,该模块具有一个名为“ inkspread”的属性,该属性可以满足我的要求,但是我无法获取那些文件以将EPS文件转换为SVG文件,例如InkScape之类的东西只是将PNG包装在svg标记中,因此它实际上不是SVG。同样,并不是所有的条形码都扫描得很好,所以我放弃了,并加倍努力让reportlab来做我想做的事!
任何建议将不胜感激。即使推荐使用其他模块(或者有人可以比我更好地将EPS转换为SVG)。我需要一个可以与reportlab一起实现并且可自动化的python解决方案。