使用 ZPL 创建标签 Python
Creating label using ZPL Python
我正在尝试创建一个带有二维码和一些文本的标签,并将标签另存为 PDF。我无法将标签的大小更改为 9 X 3 厘米。我该怎么做?
到目前为止我尝试了什么?
import requests
import shutil
zpl = """
^XA
^FO50,60^A0,15^FDID 123456^FS
^FO100,100
^BQN,2,5
^FDQA,QR_CODE^FS
^FO120,270^A0,15^FDTest here^FS
^FO150,290^A0,15^FDSome more text here^FS
^FO25,25^GB500,350,2^FS
^XZ
"""
# adjust print density (8dpmm), label width (4 inches), label height (6 inches), and label index (0) as necessary
url = 'http://api.labelary.com/v1/printers/8dpmm/labels/3.5x10/0/'
files = {'file' : zpl}
headers = {'Accept' : 'application/pdf'} # omit this line to get PNG images back
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: # change file name for PNG images
shutil.copyfileobj(response.raw, out_file)
else:
print('Error: ' + response.text)
您需要找到基本 4 个参数的正确组合,它们是:
- 图形元素的大小(以点为单位),例如文本和边界框。
- 标签的密度(或分辨率),应与打印机的密度相匹配。
- (物理)标签的大小。
- PDF 页面的大小。
以下是如何控制其中每一项的示例。
仅显示相关行:
# The values in your ZPL set the sizes in dots:
zpl = """
^XA
^FO50,60^A0,15^FDID 123456^FS
... (your full ZPL here) ...
"""
# Then:
# 1. Set the density (24dpmm) and the size of the label in inches (2.8x2):
url = 'http://api.labelary.com/v1/printers/24dpmm/labels/2.8x2/0/'
# 2. Set the PDF page size, here A4:
headers = {'Accept' : 'application/pdf', 'X-Page-Size':'A4'}
注意:如果页眉中未设置 PDF 页面大小,则它将与物理标签大小匹配。
我正在尝试创建一个带有二维码和一些文本的标签,并将标签另存为 PDF。我无法将标签的大小更改为 9 X 3 厘米。我该怎么做?
到目前为止我尝试了什么?
import requests
import shutil
zpl = """
^XA
^FO50,60^A0,15^FDID 123456^FS
^FO100,100
^BQN,2,5
^FDQA,QR_CODE^FS
^FO120,270^A0,15^FDTest here^FS
^FO150,290^A0,15^FDSome more text here^FS
^FO25,25^GB500,350,2^FS
^XZ
"""
# adjust print density (8dpmm), label width (4 inches), label height (6 inches), and label index (0) as necessary
url = 'http://api.labelary.com/v1/printers/8dpmm/labels/3.5x10/0/'
files = {'file' : zpl}
headers = {'Accept' : 'application/pdf'} # omit this line to get PNG images back
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: # change file name for PNG images
shutil.copyfileobj(response.raw, out_file)
else:
print('Error: ' + response.text)
您需要找到基本 4 个参数的正确组合,它们是:
- 图形元素的大小(以点为单位),例如文本和边界框。
- 标签的密度(或分辨率),应与打印机的密度相匹配。
- (物理)标签的大小。
- PDF 页面的大小。
以下是如何控制其中每一项的示例。
仅显示相关行:
# The values in your ZPL set the sizes in dots:
zpl = """
^XA
^FO50,60^A0,15^FDID 123456^FS
... (your full ZPL here) ...
"""
# Then:
# 1. Set the density (24dpmm) and the size of the label in inches (2.8x2):
url = 'http://api.labelary.com/v1/printers/24dpmm/labels/2.8x2/0/'
# 2. Set the PDF page size, here A4:
headers = {'Accept' : 'application/pdf', 'X-Page-Size':'A4'}
注意:如果页眉中未设置 PDF 页面大小,则它将与物理标签大小匹配。