Mail merge a PDF with your Excel or CSV data

Add a PDF template (a certificate, letter or form) and a spreadsheet, place your {{placeholders}}, and download one personalised PDF per row or a single combined file.

  • Free, no sign-up
  • No watermark
  • Files stay on your device
  • Works with Canva, Word and fillable forms
Loading the mail merge tool…

How it works

  1. Add your template. Design a certificate, letter, badge or invitation in Canva, Word, Google Docs, PowerPoint or any other app and export it as a PDF, leaving space where the personal details will go. If your PDF already has fillable form fields, the tool finds them for you.
  2. Add your data. Upload a CSV or Excel file, or paste cells straight from a spreadsheet. The first row holds the column names (for example Name, Course and Date) and every row after it becomes one PDF.
  3. Place your text and generate. Put text boxes where you want them and type placeholders such as {{Name}} or Dear {{First Name}},. Pick the font, size, colour and alignment, check the exact preview for any row, then download a ZIP of separate PDFs or one combined PDF ready to print.

What people use it for

  • CertificatesCourse completion, attendance and CPD certificates, school awards and competition results, each with the recipient’s name, course and date.
  • Award and appreciation lettersEmployee recognition, volunteer thank-yous and scholarship offers with a personal greeting.
  • Invitations and ticketsGuest names, table numbers and session times, printed together or saved as one file per guest.
  • Name badges and place cardsThe tool makes one copy of your template per row. For sheets with several badges per page, design the page with several spaces and use columns such as Name 1, Name 2 and Name 3.
  • Personalised lettersDonation receipts, membership renewals, notices to tenants or parents. Long paragraphs wrap onto new lines automatically.
  • Filling the same PDF form many timesRegistration, application and HR forms: match columns to fields once and fill a copy for everybody.

Tips for better results

Designing the template

  • From Canva: choose Share → Download → PDF Standard (or PDF Print for professional printing). Leave the name area empty rather than typing a sample name you would then have to cover up.
  • From Word or Google Docs: use File → Save as (or Download) → PDF. Set the page size you will actually print on, A4 or US Letter, before you export.
  • Leave room for long names. Tick “Shrink text to fit the box width” so that a name like Christopher Montgomery-Wellington still fits on the line, while short names stay at full size.
  • Keep fixed artwork in the PDF. Logos, signatures and seals belong in the template itself; the tool adds text on top of it.

Fonts and special characters

The built-in fonts are the classic PDF families Helvetica, Times and Courier. They work for English and Western European languages such as French, German, Spanish, Italian, Portuguese, Dutch and the Nordic languages, and they add almost nothing to the file size.

For Polish, Czech, Hungarian, Turkish, Romanian or Vietnamese names, or Greek, Cyrillic, Chinese, Japanese and Korean text, add a .ttf or .otf font that includes those letters; Noto Sans, free from Google Fonts, covers most of them. The tool tells you exactly which rows contain characters the built-in fonts can’t draw, so nothing disappears without you knowing. To match your design, add the same font file you used in Canva or Word, if its licence allows embedding. Right-to-left scripts such as Arabic and Hebrew, and scripts that join letters like Devanagari, aren’t shaped correctly yet.

Data and file names

  • Dates and numbers appear exactly as your spreadsheet shows them. If a date comes through as 3/12/26 and you want 12 March 2026, change the cell format in Excel and save again.
  • Use a fallback for empty cells: {{First Name|friend}} prints “friend” when the First Name cell is blank.
  • Name each file after the person: a pattern such as {{Name}} - certificate becomes “Amelia Hart - certificate.pdf”. Characters that aren’t allowed in file names are replaced, and duplicates get -2, -3 so nothing is overwritten.

Your files stay private

The whole merge happens inside your web browser. Your template, spreadsheet and fonts are read from your device, combined in memory and saved straight back to your device as PDFs. Nothing is uploaded, because there is no server-side processing at all, which also means no upload wait.

The page downloads open-source libraries (pdf-lib, PDF.js, SheetJS, JSZip and fontkit) from the jsDelivr network; those downloads contain program code only, never your files. Your text-box layout is remembered in your browser’s local storage so a refresh doesn’t lose your work, but your spreadsheet rows are never stored. You can confirm all of this in your browser’s developer tools (Network tab). The site is funded by Google ads, which may use cookies; the privacy policy explains how to opt out of personalised ads.

Frequently asked questions

Is it really free? Are there limits or watermarks?

Yes. There is no account, no paid tier and no watermark. The site is paid for by adverts shown around the tool, never inside it. The only practical limit is your device’s memory; an ordinary laptop can merge thousands of rows.

Are my files uploaded anywhere?

No. Your template, spreadsheet and fonts are read and combined by your own browser, and the finished PDFs are saved straight to your device. Only the text-box layout is remembered in your browser’s local storage so that a refresh doesn’t lose your work. Your data rows are never stored.

Which spreadsheet formats can I use?

CSV and TSV files (comma, semicolon, tab or pipe separated), Excel workbooks (.xlsx, .xlsm and older .xls) and OpenDocument spreadsheets (.ods). If a workbook has several sheets you can choose which one to use. From Google Sheets, use File → Download → CSV or Microsoft Excel, or copy the cells and paste them into the tool.

Can I fill a fillable PDF form instead of placing text boxes?

Yes. If your PDF has form fields, the tool lists them and matches them to columns with similar names. Text fields accept any mix of text and placeholders, checkboxes are ticked for values such as yes, true, 1 or x, and dropdowns and radio buttons are set when the value matches one of their choices. You can flatten the result so the answers can no longer be edited. There’s more detail on the fill a PDF form from CSV page.

Why does the tool warn me about characters in some names?

The built-in PDF fonts only cover English and Western European letters. Names with letters such as ł, ş, ő or Cyrillic, Greek and Chinese characters need a font that contains them. The tool lists the rows affected; add a .ttf or .otf font such as Noto Sans and it will be embedded in your PDFs. Characters are never silently dropped.

Can each person get their own PDF with their name in the file name?

Yes. Choose “Separate PDFs” and set the file name with placeholders, for example {{Name}} - certificate. Characters that aren’t allowed in file names are replaced, and duplicate names get -2, -3 and so on, so no file overwrites another.

How many rows can I merge at once?

Hundreds of rows usually take from a few seconds to a minute, depending on the template. Thousands work on a desktop or laptop, although very large batches depend on your device’s memory and how complex the template is. Above 2,000 rows the tool shows a warning and suggests a ZIP of separate files or splitting your spreadsheet.

Does it work on a phone or tablet?

Yes, in current versions of Safari, Chrome, Firefox and Edge. Placing and resizing text boxes is easier with a mouse, so for big jobs a computer is more comfortable, but small batches work fine on a phone.

More guides