Use case · Packing slips
The packing slip PDF API
Packing slips are printed in batches by people who are not looking at a screen. They need a clean line-item table, a scannable order barcode, and — crucially — the ability to come off the printer as one job rather than fifty separate files.
Render each slip from your order data, then merge the batch into a single document so the warehouse prints once.
01How it works
One file per batch
Render each slip, then POST them to the merge endpoint so a picking run prints as a single job instead of fifty.
Scannable order codes
Inline the order barcode as SVG and it stays crisp at any print resolution.
Slip plus label
Combine the packing slip and shipping label into one document on the same API key.
02One request
# render each slip, then merge the batch into one printable file
curl https://rendral.com/api/v1/merge \
-H "Authorization: Bearer sk_live_…" \
-H "Content-Type: application/json" \
-d '{ "files": ["<base64 slip 1>", "<base64 slip 2>", "<base64 slip 3>"] }' \
-o picking-run-2026-07-25.pdfFrequently asked
Can I print a whole batch as one job?
Yes — render each slip, then send them to /api/v1/merge. You get back a single PDF, which is what warehouse printers want.
Can the packing slip and shipping label be combined?
Yes. They're just two rendered documents; merge them in the order your packers expect.
How do I keep line items on one page?
Use page-break-inside: avoid on the item table, or let it paginate with a repeating thead if orders can be long.
Is there a limit on how many I can merge?
Merging is bounded by request size rather than a fixed count. For very large runs, merge in chunks — a few hundred slips per file prints more reliably anyway.
Related
Reports PDF API
Turn dashboards, analytics and charts into shareable PDF reports via API.
Compare vs WeasyPrint
How WeasyPrint and Rendral differ on pricing, features, and setup.
PDFs in Go
A step-by-step guide to generating PDFs from Go.
A free tier, five endpoints, and SDKs for Node and Python.