如何获取条码宽度?

How to get the barcode width?

我需要在 reportlab 的 A4 尺寸 PDF 的右下角放置条码 128,边距为 5mm。

为此,我们需要在 canvas 上使用 drawOn 之前获取条形码的实际宽度。

reportlab条码创建后如何获取其宽度?

注意:我尝试使用 barHeight 和 barWidth,但后者并没有给出条形码的全宽,而是给出了两个条之间的最小距离,或多或少。

做的时候:

barcode = code128.Code128(ID, barHeight=1 * cm, barWidth=1.5, quiet=False)

然后简单地 barcode.width 给出它的宽度 :)

确实 Code128 是 class MultiWidthBarcode 的子 class,它本身是 Barcode 的子 class,具有 属性 width 定义 here:

def width(self):
    self._calculate()
    return self._width
width = property(width)

那么,下面是如何在 A4 纸的右下角放置条形码sheet:

MARGIN = 0.5 * cm
barcode.drawOn(c, 21 * cm - MARGIN - barcode.width, MARGIN)