In tem nhãn PDF (máy in nhiệt) API
Tem cho máy in nhiệt dạng PDF: tem vận đơn có COD, Code 128, QR; tem giá có EAN-13; tem phụ hàng nhập khẩu; tem tuỳ chỉnh; in hàng loạt nhiều trang.
Chọn template và khổ size (100x150, 100x100, 76x130, 75x50, 50x30, a6 hoặc RỘNGxCAO tính bằng mm), gửi một tem bằng các trường hoặc nhiều tem trong labels (mỗi tem một trang, copies số bản mỗi tem, tối đa 500 trang). Mẫu: shipping (tem vận đơn tự giao: tên shop / hãng, ngày, mã đơn dạng Code 128, người nhận chữ lớn, người gửi, tiền thu hộ COD kèm số tiền bằng chữ, khối lượng, nội dung hàng, ghi chú và mã QR), price (tên hàng, giá VND, giá cũ gạch ngang và đơn vị tuỳ chọn, mã EAN-13 khi mã vạch có 12–13 chữ số, ngược lại Code 128), aux (nhãn phụ tiếng Việt cho hàng nhập khẩu, cùng trường dữ liệu với vn-label-rules; trường bắt buộc còn thiếu được báo trong header x-warnings) và custom (tiêu đề, các dòng, mã vạch, QR).
Chữ dùng font Be Vietnam Pro (đủ dấu tiếng Việt, nhúng dạng subset) và tự thu nhỏ cho vừa tem; mã vạch và QR là hình vector nên in sắc nét ở 203 hoặc 300 dpi. Số kiểm tra EAN-13 được kiểm tra (gửi 12 chữ số thì API tự thêm). Kết quả là application/pdf, hoặc JSON chứa PDF base64 khi format=json. Khi in chọn tỉ lệ 100 % (không "vừa trang") đúng khổ giấy tem.
Tham số
| Tên | Vị trí | Kiểu | Bắt buộc | Mặc định | |
|---|---|---|---|---|---|
template | body | string | không | shipping | shipping, price, aux hoặc custom (có thể đặt riêng từng tem). |
size | body | string | không | 100x150 | 100x150, 100x100, 76x130, 75x50, 50x30, a6 hoặc RỘNGxCAO (mm). |
labels | body | array | không | Các tem (mỗi tem một trang). Vận đơn: sender, receiver {name, phone, address}, order_code, cod, weight (g), items / content, note, shop, date, qr. Tem giá: name, price, old_price, unit, barcode. Tem phụ: group + các trường nhãn của vn-label-rules. Tuỳ chỉnh: title, lines, barcode, qr. copies: số bản mỗi tem. | |
rotate | body | boolean | không | false | Đổi chiều rộng và cao (nằm ngang). |
format | body | string | không | pdf | pdf hoặc json (base64). |
Ví dụ
curl -X POST "https://apibox.io.vn/v1/label-pdf" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"template":"shipping","size":"100x150","labels":[{"shop":"Shop Hoa Mai","date":"11/11/2026","order_code":"DH20261111-001","sender":{"name":"Shop Hoa Mai","phone":"0901234567","address":"12 Nguyễn Huệ, Phường Sài Gòn, TP. Hồ Chí Minh"},"receiver":{"name":"Nguyễn Thị Lan","phone":"0912345678","address":"Số 5 ngõ 12 Phố Huế, Phường Hai Bà Trưng, Hà Nội"},"cod":350000,"weight":1200,"items":[{"name":"Áo thun","quantity":2}],"note":"Cho xem hàng"}]}' \
-o outputconst res = await fetch('https://apibox.io.vn/v1/label-pdf', {
method: 'POST',
headers: {
Authorization: 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({
"template": "shipping",
"size": "100x150",
"labels": [
{
"shop": "Shop Hoa Mai",
"date": "11/11/2026",
"order_code": "DH20261111-001",
"sender": {
"name": "Shop Hoa Mai",
"phone": "0901234567",
"address": "12 Nguyễn Huệ, Phường Sài Gòn, TP. Hồ Chí Minh"
},
"receiver": {
"name": "Nguyễn Thị Lan",
"phone": "0912345678",
"address": "Số 5 ngõ 12 Phố Huế, Phường Hai Bà Trưng, Hà Nội"
},
"cod": 350000,
"weight": 1200,
"items": [
{
"name": "Áo thun",
"quantity": 2
}
],
"note": "Cho xem hàng"
}
]
}),
});
const blob = await res.blob();import requests
res = requests.post(
"https://apibox.io.vn/v1/label-pdf",
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={"template": "shipping", "size": "100x150", "labels": [{"shop": "Shop Hoa Mai", "date": "11/11/2026", "order_code": "DH20261111-001", "sender": {"name": "Shop Hoa Mai", "phone": "0901234567", "address": "12 Nguyễn Huệ, Phường Sài Gòn, TP. Hồ Chí Minh"}, "receiver": {"name": "Nguyễn Thị Lan", "phone": "0912345678", "address": "Số 5 ngõ 12 Phố Huế, Phường Hai Bà Trưng, Hà Nội"}, "cod": 350000, "weight": 1200, "items": [{"name": "Áo thun", "quantity": 2}], "note": "Cho xem hàng"}]},
timeout=30,
)
open("output", "wb").write(res.content)<?php
$ch = curl_init('https://apibox.io.vn/v1/label-pdf');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_HTTPHEADER => ['Authorization: Bearer YOUR_API_KEY', 'Content-Type: application/json'],
CURLOPT_POSTFIELDS => '{"template":"shipping","size":"100x150","labels":[{"shop":"Shop Hoa Mai","date":"11/11/2026","order_code":"DH20261111-001","sender":{"name":"Shop Hoa Mai","phone":"0901234567","address":"12 Nguyễn Huệ, Phường Sài Gòn, TP. Hồ Chí Minh"},"receiver":{"name":"Nguyễn Thị Lan","phone":"0912345678","address":"Số 5 ngõ 12 Phố Huế, Phường Hai Bà Trưng, Hà Nội"},"cod":350000,"weight":1200,"items":[{"name":"Áo thun","quantity":2}],"note":"Cho xem hàng"}]}',
]);
$response = curl_exec($ch);
file_put_contents('output', $response);Kết quả trả về
binary application/pdf
Ứng dụng
- In tem vận đơn cho đơn shop tự giao
- Làm tem giá có mã vạch cho cửa hàng nhỏ
- In nhãn phụ tiếng Việt cho hàng nhập khẩu
- In hàng loạt tem vị trí kho có mã QR
Hỏi đáp
Dùng được với máy in nào?
Mọi máy in được PDF lên giấy tem: máy in nhiệt (Xprinter, HPRT, Zebra…) 203 hoặc 300 dpi, hoặc giấy decal A4 nếu chọn khổ tuỳ chỉnh. In ở tỉ lệ 100 %.
In nhiều tem một lần được không?
Được: gửi "labels" là một mảng (tối đa 500 trang, "copies" cho số bản mỗi tem). Mỗi tem là một trang PDF.
Hỗ trợ loại mã vạch nào?
Code 128 (mã đơn, SKU) và EAN-13 (mã vạch sản phẩm, có kiểm tra số kiểm tra), cùng mã QR.
API liên quan
Metadata ảnh & EXIF
Đọc kích thước, định dạng, thông tin EXIF máy ảnh, thông số chụp và vị trí GPS của ảnh JPEG, PNG, WebP, HEIC, AVIF, GIF… – upload file hoặc qua URL.
PDFMetadata PDF
Đọc metadata file PDF: số trang, tiêu đề, tác giả, phần mềm tạo, ngày tạo, phiên bản PDF, mã hoá, số trường form và khổ giấy từng trang (A4, Letter…).
PDF₫Tạo PDF báo giá, phiếu thu
Tạo PDF báo giá, phiếu thu, đơn đặt hàng, hoá đơn bán hàng gọn đẹp từ JSON: tiếng Việt chuẩn, thuế GTGT, số tiền bằng chữ và mã VietQR để thanh toán.