Bulk PDF generator

Upload a CSV, pick a template, and get a personalized PDF for every row.

  • Preview your data before you sign up
  • Up to 1,000 PDFs per run on paid plans
  • No credit card required
pdfgen.com/bulk-pdf-generator

1Choose a template

2Add your data

recipientcourse
Advanced Data Analytics
Project Management Basics
Leadership Essentials

Live preview

Row 1 of 3

Free to start, no credit card. Your file stays in this browser until you generate.

How to generate PDFs from a CSV

  1. Step 1

    Choose a template

    Pick a ready-made template, or describe the document you need and let AI build it with fields for your data.

  2. Step 2

    Upload your CSV

    Export a CSV from Excel or Google Sheets. Columns are matched to template fields automatically, and you can check any row before you start.

  3. Step 3

    Download your PDFs

    One PDF is created per row. Download them one at a time or all together as a ZIP.

What your CSV should look like

If you can keep a list in a spreadsheet, you already have what you need.

recipients.csv
recipientcoursehoursdate
Maria GonzálezAdvanced Data Analytics402026-06-20
James OkaforProject Management Basics242026-06-21
Priya SharmaLeadership Essentials162026-06-22

Creates Maria González.pdf

  • Put column names in the first row. Each row after that becomes one PDF.
  • Save as CSV from Excel, Numbers or Google Sheets. Comma and semicolon files both work.
  • Use a dot for nested fields: signatory.name fills {{signatory.name}}.
  • Write true or false to show or hide optional sections of a template.
  • Values such as zip code 01234 and price 1.50 keep their exact formatting.

What you can create in bulk

Anything with one set of details per person, order or event. Start from a template, then make it yours.

Built for lists that matter

Automatic column matching

“Customer Name” finds customer_name without any renaming. Anything that doesn't match is flagged, and you can pick the column yourself.

Preview real rows

Step through your actual data on the template before generating, so a wrong column shows up while it's still free to fix.

Name files from your data

Name each PDF after any column, such as the recipient or order number. Duplicate names are numbered automatically.

Pause, resume and retry

Stop whenever you like, and retry just the rows that failed. If your tab closes, continue from the same point within 24 hours.

Only pay for what works

Credits are used per finished PDF, so failed rows are free. You'll see the estimate before anything starts.

The same output as our API

Bulk runs use the same renderer as the PDFgen API, so a template looks identical here and in your product.

Generate from your own code

Bulk generate is ideal for one-off lists. When PDFs should be created automatically, such as a certificate each time a learner finishes a course, send the same template and data through the REST API.

pdfgen.com/api/v1/generate
import fs from "node:fs";
import { parse } from "csv-parse/sync";
const rows = parse(fs.readFileSync("recipients.csv"), { columns: true });
for (const row of rows) {
const res = await fetch("https://pdfgen.com/api/v1/generate", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.PDFGEN_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({ template_id: "YOUR_TEMPLATE_ID", data: row }),
});
fs.writeFileSync(`${row.recipient}.pdf`, Buffer.from(await res.arrayBuffer()));
}

Questions, answered

The things people usually ask before their first run.

How do I generate multiple PDFs from a CSV file?

Choose a template and upload your CSV at the top of this page. PDFgen matches your columns to the template's fields and previews each row. Sign up to create one PDF per row, then download them individually or as a single ZIP.

Do I need a template first?

You need one, but you don't have to make it yourself. Pick a ready-made template and it's added to your account when you sign up, or describe your document and AI builds a template with your CSV's columns as its fields.

Can I try it before signing up?

Yes. Upload your CSV and preview every row on a template without an account. Your file stays in your browser. An account is only needed to generate the PDFs.

How many PDFs can I generate at once?

Paid plans can generate up to 1,000 PDFs per run, and the free plan up to 10. For larger lists, split your file into several runs or use the REST API.

How much does bulk PDF generation cost?

Each PDF costs 1 credit per 5 pages, so a 1–5 page PDF is 1 credit. Failed rows aren't charged. The free plan includes 30 credits a month with a PDFgen watermark, and paid plans remove the watermark.

Is this the same as a mail merge?

It works the same way: one template, one spreadsheet, one personalized document per row. The difference is that the result is a set of separate PDF files instead of a Word document or emails.

Do my CSV column names have to match the template?

No. Names that match regardless of capitals, spaces or underscores are connected automatically, and you can choose a column by hand for the rest. Fields with no column stay blank, and you'll be warned before you start.

Can I generate invoices with several line items from a CSV?

Not yet. Each CSV row fills one PDF, so repeating sections such as invoice line items can't be filled from a CSV today. Documents with one set of values per person or order work well. For repeating sections, send your data as JSON through the API.

Can I upload an Excel file?

Save it as CSV first: in Excel, choose File → Save As → CSV. In Google Sheets, choose File → Download → Comma-separated values.

Do I need to keep the page open?

Yes. Your browser sends the rows, so generation pauses if the tab closes. Finished PDFs are kept in that browser, and you can continue from the same point within 24 hours.

Is my CSV data stored?

Your file is read in your browser, and each row is sent to our servers only to create its PDF. Bulk runs don't save your rows or PDFs on our servers. They stay in your browser so you can resume a run.

Your whole list, done in one go

Upload your CSV and see it on a template in seconds. It's free to start, with up to 10 PDFs per run.