# Print labels from data: shipping, product and shelf labels as one-page PDFs

> Generate shipping, product, shelf and name labels as one-page vector PDFs at the exact label size, from a CSV or your system's data. Sizes and limits.

Published 2026-11-07 · https://shareglint.com/en/use-cases/print-labels

Labels are the most repetitive print job there is: the same layout, a different name, address, product or code on every one. With Shareglint a label is an HTML template at the label's exact size, and each row of your data becomes a **one-page vector PDF** — sharp text at any printer resolution, the right page size for the label printer, one file per label in a ZIP. Shipping labels from your own shop, product and shelf labels, name labels for an event, sample labels for a lab.

## Size: the page is the template

A PDF render is exactly one page, the template's width and height in CSS pixels at **96 pixels per inch**, with no margins ([PDF generation](https://shareglint.com/en/pdf-generation-api)). To get a label size, multiply inches by 96, or millimetres by 96 / 25.4 — CSS defines 1 inch as 96 pixels ([CSS Values and Units](https://www.w3.org/TR/css-values-4/#absolute-lengths)):

| Label | Inches / mm | Template size (px) |
|---|---|---|
| Shipping label | 4 × 6 in | 384 × 576 |
| Large shipping label | 100 × 150 mm | 378 × 567 |
| Address label | 4 × 2 in | 384 × 192 — too small, see below |
| Name badge | 4 × 3 in | 384 × 288 |
| A6 | 105 × 148 mm | 397 × 559 |

**Limit:** templates must be at least **200 pixels on each edge** (divide by 96 for inches). Smaller labels — 2 × 1 inch product labels, 4 × 2 inch address labels, most jewellery and shelf-edge labels — cannot be a template on their own. For those, make a template the size of the full label sheet and lay the labels out on it yourself, or use label software.

## A label per row

Save the template once (HTML and CSS at the label size, fields in `{{ }}`), then send the rows:

```bash
curl -X POST "https://shareglint.com/v1/batches" \
  -H "Authorization: Bearer sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "template": "shipping-label-4x6",
    "format": "pdf",
    "csv_url": "https://example.com/exports/todays-orders.csv"
  }'
```

The CSV has a column per field — name, address lines, order number, a barcode image URL — plus `filename` (the order number works) and `id`. Every row comes back as a PDF, and the ZIP holds them all, named by `filename`. Rows per batch by plan: Free 50, Starter 500, Pro 1,000, Scale 2,000, Business 5,000. For one label at a time — printing at the packing station as each order is packed — `POST /v1/images?wait=true` with `"format": "pdf"` returns the PDF in seconds.

## Barcodes and QR codes

We lay codes out; we do not generate them. Make the code with a library — for barcodes, for example, [bwip-js](https://github.com/metafloor/bwip-js) in JavaScript, which renders many barcode types including Code 128 and EAN-13 — upload the PNG or SVG, and pass its public URL to an image field. For QR codes, see [QR code images](https://shareglint.com/en/use-cases/qr-code-images).

Barcodes are less forgiving than text: scanners need sharp edges and a quiet zone. Generate the barcode image at a high resolution, keep it at its intended size in the template (do not stretch it), and test-scan a printed label before printing a batch. For carrier shipping labels, your carrier's API usually produces the label itself, with its own barcode rules; templates are better for your own labels around it — packing slips, return labels, product labels.

## Print settings

- **Print at 100 %**, not "fit to page", or the label's size changes.
- **Thermal label printers** (4 × 6 in) can usually print the PDF as is when its page size matches the label stock; check the printer driver's page size.
- **Colour:** the PDF is RGB. Black text and barcodes print the same everywhere; for brand colours on professional print, ask your printer about conversion — we do not produce CMYK.
- **Fonts** are the families installed on our renderer, embedded in the PDF; you cannot upload a font file.

## Use cases

- **Shops:** product labels, gift tags and packing slips at the label printer, one per order.
- **Events:** name labels and badge inserts from the registration list ([event graphics](https://shareglint.com/en/use-cases/event-graphics)).
- **Warehouses and labs:** shelf and sample labels with a code from your system — at sizes of at least 200 px per edge.
- **Retail:** shelf signs and price cards (`price-list` and your own templates) for A6 or larger.

## A packing-station setup

A common small-shop setup: when an order is marked as packed, the shop's system calls the API with the order's data and `"format": "pdf"`, downloads the returned PDF and sends it to the label printer. The label arrives in seconds, from the same template every time. If a label has to be printed again, the same request returns the same PDF without using quota. For end-of-day batches — all of today's orders at once — the CSV batch above does the same and returns one ZIP for the printer queue.

Keep the template's fields close to the data you already have — order number, name, address lines, a code image — so the integration is a direct mapping, not a translation layer.

## Cost

One render per PDF; repeats are free. Two hundred order labels a day is about 6,000 renders a month; compare that with the plans' monthly quotas (Starter: 2,000, Pro: 10,000). Fifty event name labels are 50 renders, once. The Free plan's 100 renders carry a watermark, which a label cannot have; Starter is $9 a month ([pricing](https://shareglint.com/en/pricing)).

## What it does not do

- No labels smaller than 200 pixels on an edge as a template of their own.
- No multi-label sheets: one label per PDF; imposing them on A4 or Letter sheets is a separate step.
- No barcode or QR generation, no CMYK output, no direct printing.
- No carrier integration: shipping labels with carrier barcodes come from the carrier's own API.

The `event-badge` template is a ready badge layout; copy it into your account and set its width and height to your label stock to start your own label.

## FAQ

### Can I generate labels as PDFs from a spreadsheet?

Yes. Make a template at the label's size, put one label per row in a CSV, and send it as a batch with format pdf. Each row becomes a one-page vector PDF exactly the label's size, all of them in one ZIP.

### How do I set the label size?

The PDF page is the template's size in CSS pixels at 96 pixels per inch: a 4×6 inch label is a 384×576 template, a 100×150 mm label about 378×567. Templates must be at least 200 pixels on each edge.

### Can it print several labels on one A4 sheet?

No. Each PDF is one label. Label sheets (several labels on A4 or Letter) need a PDF imposition step, which most label printing software and print shops do.

### Do you generate barcodes?

No. Like QR codes, a barcode is an image you generate with a barcode library and pass by URL to an image field in your template.
