使用Python通过ZPL生成含二维码的9×3cm标签并保存为PDF的方法咨询
要实现9×3厘米的标签PDF生成,按以下步骤修改代码即可:
核心修改逻辑
- 首先做单位转换:Labelary API的标签尺寸参数采用英寸作为单位,9cm换算为约3.54英寸,3cm换算为约1.18英寸,直接替换接口URL中的尺寸参数即可。
- 其次调整ZPL布局:你当前使用的是8dpmm的打印精度(每毫米对应8个打印点),3厘米高度对应总打印点数为240,9厘米宽度对应总打印点数为720,原来的ZPL里的边框、文字、二维码坐标都要调整到这个范围内,避免内容溢出被裁切。
修改后可直接运行的代码
import requests import shutil zpl = """ ^XA ^FO30,20^A0,18^FDID 123456^FS ^FO100,40 ^BQN,2,3 ^FDQA,QR_CODE^FS ^FO280,60^A0,18^FDTest here^FS ^FO280,90^A0,18^FDSome more text here^FS ^FO10,10^GB700,220,2^FS ^XZ """ # 尺寸参数已替换为9cm×3cm对应的英寸值 url = 'http://api.labelary.com/v1/printers/8dpmm/labels/3.54x1.18/0/' files = {'file' : zpl} headers = {'Accept' : 'application/pdf'} response = requests.post(url, headers = headers, files = files, stream = True) if response.status_code == 200: response.raw.decode_content = True with open('label.pdf', 'wb') as out_file: shutil.copyfileobj(response.raw, out_file) else: print('Error: ' + response.text)
参数调整说明
- 如果需要调整二维码大小,可以修改
^BQN,2,3里的最后一位数字,数值越大二维码越大。 - 如果需要调整文本位置,修改对应
^FO后面的两个数值即可,第一个是横向偏移量,第二个是纵向偏移量,单位都是打印点。 - 如果需要用竖版标签,把URL里的尺寸改成
1.18x3.54,同时对应调整ZPL里的坐标布局即可。
内容的提问来源于stack exchange,提问作者disukumo
相关产品推荐
相关产品推荐

