tài liệu API
Một điểm cuối kết xuất ZPL sang PNG hoặc PDF. Nó tương thích với API v1 của Labelary: cùng đường dẫn, tiêu đề và lỗi.
Kết xuất một nhãn
GET https://api.openzpl.com/v1/printers/{dpmm}/labels/{width}x{height}/{index}/{zpl}
POST https://api.openzpl.com/v1/printers/{dpmm}/labels/{width}x{height}/{index}
POST https://api.openzpl.com/v1/printers/{dpmm}/labels/{width}x{height}/
dpmm | Độ phân giải in: 6dpmm, 8dpmm, 12dpmm, 24dpmm. |
width, height | Kích thước nhãn tính bằng inch, ví dụ 4x6 hoặc 2.25x1.25. Tối đa 15 inch mỗi cái. |
index | Nhãn nào sẽ được kết xuất, bắt đầu từ 0. Để trống với đầu ra PDF để lấy mọi nhãn, mỗi nhãn một trang. |
zpl | Đối với GET, ZPL được mã hóa URL. Mã hóa # thành %23. Sử dụng POST cho bất cứ điều gì dài. |
Với POST, gửi ZPL như là nội dung yêu cầu thô, hoặc như một trường biểu mẫu đa phần có tên file.
Chìa khóa API
Nếu không có khóa, bạn sẽ nhận được giới hạn miễn phí cho mỗi địa chỉ IP. Với một khóa từ bảng điều khiển của bạn, gửi nó trong tiêu đề X-API-Key và giới hạn của kế hoạch không gian làm việc của bạn sẽ được áp dụng.
curl https://api.openzpl.com/v1/printers/8dpmm/labels/4x6/0/ \ -H "X-API-Key: oz_live_…" --data-binary @label.zpl > label.png
Ví dụ
# PNG from a short ZPL string curl --get https://api.openzpl.com/v1/printers/8dpmm/labels/4x6/0/ \ --data-urlencode "^xa^cfa,50^fo100,100^fdHello World^fs^xz" > label.png # PDF with every label in a file curl https://api.openzpl.com/v1/printers/8dpmm/labels/4x6/ \ -H "Accept: application/pdf" --form file=@labels.zpl > labels.pdf
import requests
zpl = "^xa^cfa,50^fo100,100^fdHello World^fs^xz"
res = requests.post("https://api.openzpl.com/v1/printers/8dpmm/labels/4x6/0/", data=zpl)
res.raise_for_status()
open("label.png", "wb").write(res.content)const zpl = "^xa^cfa,50^fo100,100^fdHello World^fs^xz";
const res = await fetch("https://api.openzpl.com/v1/printers/8dpmm/labels/4x6/0/", {
method: "POST",
headers: { Accept: "application/pdf" },
body: zpl,
});
await require("fs/promises").writeFile("label.pdf", Buffer.from(await res.arrayBuffer()));$zpl = "^xa^cfa,50^fo100,100^fdHello World^fs^xz";
$ch = curl_init("https://api.openzpl.com/v1/printers/8dpmm/labels/4x6/0/");
curl_setopt_array($ch, [CURLOPT_POST => true, CURLOPT_POSTFIELDS => $zpl, CURLOPT_RETURNTRANSFER => true]);
file_put_contents("label.png", curl_exec($ch));Tiêu đề yêu cầu
| Tiêu đề | Giá trị | Mặc định |
|---|---|---|
Accept | image/png, application/pdf | PNG |
X-Quality | Grayscale (8-bit, cạnh mịn) hoặc Bitonal (1-bit, tệp nhỏ hơn) | Grayscale |
X-Rotation | 0, 90, 180, 270, theo chiều kim đồng hồ | 0 |
X-API-Key | Khóa không gian làm việc của bạn, tùy chọn | — |
Giới hạn
- Free, no sign-up and no key: 3 requests per second and 5,000 labels per UTC day, per IP address.
- Labels, not requests, count against the daily allowance: every label rendered,
^PQcopies and PDF pages included. A 10-label PDF is 1 request and 10 labels. - Every request: up to 50 labels, a 1 MB body, 15 inches per side, and 10 seconds of render time.
- Paid plans (Starter $9/month: 10 requests/s and 25,000 labels/day, Pro $29/month: 10 requests/s and 100,000 labels/day, Business $99/month: 20 requests/s and 500,000 labels/day) are announced but billing isn't live yet. API keys work today; a workspace stays on the Free plan until billing opens.
- Over a limit the API answers
429withRetry-After(seconds) and a body that names the limit, e.g.ERROR: Daily limit reached: 5000 labels per UTC day on this plan (^PQ copies and PDF pages count).
Phản hồi và lỗi
Các phản hồi thành công mang X-Total-Count, số lượng nhãn mà ZPL sản xuất, bao gồm ^PQ bản sao. Lỗi là văn bản đơn giản bắt đầu bằng ERROR:.
| Trạng thái | Ý nghĩa |
|---|---|
| 400 | Một tham số không hợp lệ, nhãn quá lớn, hoặc chỉ số nằm ngoài phạm vi. |
| 401 | Khóa API không rõ hoặc đã bị thu hồi. |
| 406 | Tiêu đề Accept yêu cầu một định dạng đầu ra chưa có sẵn. |
| 413 | Nội dung vượt quá 1 MB, hoặc ZPL tạo ra nhiều hơn 50 nhãn. |
| 429 | Quá nhiều yêu cầu hoặc nhãn cho kế hoạch của bạn. Đợi số giây trong Retry-After. |
| 503 | Nhãn mất hơn 10 giây để tạo, hoặc dịch vụ đã quá tải. Thử lại, hoặc giảm độ phân giải hoặc kích thước. |
Những gì động cơ vẽ, bỏ qua hoặc chưa được hỗ trợ nằm trên the compatibility page; tốc độ nó kết xuất, đo trên máy chủ sản xuất, trên the benchmarks page.
OpenAPI và Markdown
Hợp đồng giống nhau được công bố dưới dạng OpenAPI 3.1 và Markdown, dành cho các trình tạo mã và trợ lý lập trình.
Hướng dẫn từng bước: Python, Node.js, PHP, C#. Chuyển từ Labelary: migration guide.