Variable data printing (VDP) merges a fixed print template with rows from a data source — a spreadsheet or database — so each output page carries unique text or images, such as a name, seat number, or ticket code, while the layout stays constant. It is used for direct mail, numbered tickets, badges, membership cards, and certificates.
What is variable data printing?
Variable data printing is a production method, not a single piece of software. A template holds everything that stays the same across a run — the artwork, the fixed copy, the trim size and bleed. A data source holds everything that changes — one row per finished piece. A merge engine combines the two, page by page, into a finished document.
The term dates back to early digital presses, where the ability to change content between impressions without stopping the press was a genuine departure from offset lithography. According to Wikipedia's overview of the technique, VDP became practical once digital printing let each sheet differ from the last at full production speed.1 That's still the core distinction from offset: an offset plate is fixed, a VDP job isn't.
How does VDP actually work?
Three components move through the process in a fixed order. First, the template defines where text and image fields sit on the page, along with any static design. Second, the data source supplies one record per output — a spreadsheet row is the most common shape. Third, the merge step reads each record, drops its values into the template's fields, and writes out a page.
For print-ready output, the merge has to preserve what the template already got right: embedded fonts, a correct bleed box, and a fixed trim size. A merge that just re-renders text into a fresh PDF page without inheriting those properties can quietly break a press-ready file — that's the difference between VDP built for print and a generic document mail merge.
What can you produce with VDP?
The pattern — one template, many records — covers most jobs where each piece needs to be individually identifiable or personalized. Direct mail is the largest commercial category by volume; numbered tickets, badges, and certificates are the most common jobs for event and membership organizations.
| Output type | What varies per record | Typical run size |
|---|---|---|
| Direct mail letters/postcards | Name, address, offer code | 500 – 50,000+ |
| Numbered raffle/event tickets | Sequential number, sometimes a name | 100 – 5,000 |
| Conference/event badges | Name, company, session track color | 50 – 2,000 |
| Membership or ID cards | Name, member number, expiry date | 100 – 10,000 |
| Certificates | Recipient name, date, credential ID | 20 – 1,000 |
Ticket and certificate jobs tend to be simpler merges — one or two fields, mostly text. Direct mail jobs often carry conditional content, where a block of copy changes based on a data value (a different offer for existing customers versus new prospects, for example). That conditional layer is where VDP jobs get materially more complex than a straight numbering sequence.
Badges and membership cards sit in between. They typically merge three or four fields — name, organization, member number, and sometimes a QR code or barcode value tied to that record — without the branching logic direct mail often needs. That makes them a reasonable starting point if you're setting up a VDP workflow for the first time: enough fields to prove the merge handles multiple data types, without the conditional-content complexity of a full mail campaign.
How do you prepare files for VDP?
Four checks catch most VDP failures before they reach a press or a mailbox. Skipping any one of them tends to surface as a rejected job or, worse, a run that prints wrong and isn't caught until delivery.
- Embed every font in the template before merging — an unembedded font can substitute on another machine and silently reflow text across the whole run.
- Keep bleed and trim consistent. If the template has a 3 mm bleed, every merged page needs the same bleed box, not a cropped or resized version.
- Clean the data source first. Stray commas inside unquoted CSV fields, inconsistent date formats, and mismatched column counts are the most common causes of a broken merge.
- Verify image paths resolve. If a data column points to per-record images, confirm every path is valid — a missing image usually produces a blank box rather than an error.
Where does VDP run — digital press vs. desktop?
VDP grew up on digital presses because they can change content between impressions without a new plate. That's still where high-volume commercial VDP runs — tens of thousands of mail pieces — happen, on production-grade digital or inkjet presses at a print service provider.
Smaller runs have shifted toward browser- and desktop-based merge tools that output a standard, press-ready PDF. A 500-ticket raffle run or a 200-badge conference batch doesn't need enterprise VDP infrastructure — it needs a correct merge and a PDF that any digital press or local print shop can run without special software on their end. The output format is the same PDF/X-style file either way; what differs is the scale of the data source and whether conditional content branches per record.
The economics also differ by scale. A print service provider running a 50,000-piece direct mail job amortizes the cost of a dedicated VDP workflow — often a purpose-built engine handling conditional logic, address hygiene, and postal presorting — across a large enough run that the tooling pays for itself. A 500-ticket raffle doesn't carry that same cost structure, so a lighter merge that just needs a correct template, a clean CSV, and a numbering rule is the more sensible fit. Neither approach is "more correct" than the other; they're sized to different jobs.
VDP vs. mail merge: what's different?
"Mail merge" usually refers to the Microsoft Word feature, aimed at desktop printing of letters. It's the same underlying concept as VDP — template plus data source — but it doesn't carry print-specific requirements like embedded fonts, a defined bleed box, or a fixed trim size through the merge by default.
VDP for print starts from a PDF template built for a press: fonts embedded, bleed set, trim size locked. The merge step needs to respect all three, because a print vendor's preflight check will reject or hold a file that doesn't. In short: every VDP job is a kind of mail merge, but not every mail merge produces a file a print shop will accept.
There's a practical test you can run on any merge tool before trusting it with a real job: merge five records, open the result, and check the document properties for font embedding and the page geometry for bleed. If both survived the merge unchanged, the tool is treating the template correctly. If the fonts show as "not embedded" or the trim size shifted by even a millimeter, that's a structural problem that will resurface at full run size — better to catch it on five test pages than on five hundred.
Upload a CSV and a template PDF and generate print-ready output in the browser.
FAQ
Is VDP the same as a mail merge?
They share the same underlying idea — a template plus a data source — but VDP for print keeps the PDF's bleed, trim size, and embedded fonts intact through the merge, which a desktop mail merge typically does not guarantee.
Do I need special VDP software to run a merge?
Not for straightforward jobs. Dedicated VDP languages exist for complex enterprise campaigns, but sequential numbering and single-field merges can run in a browser tool without a licensed VDP suite.
Can VDP include images that change per record, not just text?
Yes, provided the data source gives a valid path or URL to each image and the images are prepared at print resolution in advance — a merge tool places them but does not upscale or correct low-resolution source files.
What file format should the data source be in?
CSV is the universal choice because every spreadsheet program and database can export it cleanly. XLSX works too, but exporting to CSV first avoids formatting artifacts like currency symbols or merged cells carrying into the merge.
1. Wikipedia, "Variable data printing," accessed 2026.