paperless-asn-qr-codes/paperless_asn_qr_codes/main.py
2023-11-25 15:45:19 +01:00

33 lines
1.1 KiB
Python

import argparse
from reportlab.lib.units import mm, cm
from reportlab_qrcode import QRCodeImage
from paperless_asn_qr_codes import avery_labels
def render(c,x,y):
global startASN
barcode_value = f"ASN{startASN:07d}"
startASN = startASN + 1
qr = QRCodeImage(barcode_value, size=y*0.9)
qr.drawOn(c,1*mm,y*0.05)
c.setFont("Helvetica", 2*mm)
c.drawString(y, (y-2*mm)/2, barcode_value)
def main():
parser = argparse.ArgumentParser(
prog='paperless-asn-qr-codes',
description='CLI Tool for generating paperless ASN labels with QR codes')
parser.add_argument('start_asn')
parser.add_argument('output_file')
parser.add_argument('--format', choices=avery_labels.labelInfo.keys(), default="averyL4731")
args = parser.parse_args()
global startASN
startASN = int(args.start_asn)
label = avery_labels.AveryLabel(args.format)
label.open(args.output_file)
# by default, we render all labels possible on a single sheet
count = avery_labels.labelInfo[args.format][0]*avery_labels.labelInfo[args.format][1]
label.render(render, count )
label.close()