Purpose
Variable data printing (VDP) turns one label design into hundreds or thousands of unique labels — each with its own name, SKU, batch, serial, or barcode — from a spreadsheet. This beginner guide connects a CSV/Excel file to label fields, previews records, and batch prints, with no scripting.
It is the foundation for serialized labels, product ranges, price labels, and personalized runs.
1. Prepare the data file
Clean data makes VDP painless. Start from a simple CSV or Excel sheet:
- Row 1 = headers (e.g.
name,sku,lot,price). These become your field names. - One record per row; no merged cells or blank header columns.
- Keep leading zeros safe (format code columns as text so
0123survives). - Use plain UTF-8 for accents and special characters.
2. Connect the data source
Open the Merge panel
Use the Merge / data-source panel and choose your file format (CSV, Excel, JSON, etc.).
Select the file
Point at your CSV/Excel. The app reads the header row and lists available fields.
Check delimiter/encoding
For CSV confirm the separator (comma/semicolon) and UTF-8 so columns split correctly.
Confirm the record count
The panel should show the number of rows it will print — a quick sanity check.
3. Insert merge fields into the design
Fields are placeholders written as ${header}. At print time each is replaced by the current row's value.
- Add a text object and insert
${name},${sku}, etc. - Mix fixed text and fields:
Lot: ${lot}. - Point a barcode's value at a field (e.g.
${sku}) so each label's code changes. - Set minimum font / auto-shrink so long values still fit.
4. Preview each record
| Preview control | What to check |
|---|---|
| Next / Previous | Step through several records; the label updates with each row. |
| First & last | Check the extremes — longest name, highest serial, edge cases. |
| Empty values | Rows with blank fields should still look acceptable (or be filtered out). |
| Selection | Print all rows or only a selected range/subset. |
5. Batch print
Print a short test
Select the first 3–5 records and print them; confirm layout and barcode scans on real media.
Choose the range
Print all records or a subset (e.g. rows 1–500) for staged production.
One label per row
The app generates a unique label for each selected row and sends the batch to the printer or queue.
Save the setup
Save the file so the same design + data mapping can be reprinted later.
6. Common problems and fixes
| Symptom | Likely cause & fix |
|---|---|
| Field prints literally as ${name} | Header name mismatch or source not connected. Check exact column name. |
| Leading zeros disappear | Excel treated the column as a number. Format it as text and re-import. |
| Accents look garbled | Wrong encoding. Re-save the CSV as UTF-8. |
| Long values overflow | Enable auto-shrink / set a smaller minimum font, or enlarge the text box. |
| Columns merged into one | Wrong CSV delimiter. Set comma vs semicolon to match the file. |
