Tutorials
How to Turn Your Notion Database into Professional PDFs (Step-by-Step)
Learn how to turn your notion database into professional PDFs.
By Sanat Biswal · 2026-07-13 · 15 min read
For people who are managing everything inside Notion, it becomes a powerhouse for organizing everything starting from client documents, Invoices, project reports and much more.
But organizing data in Notion is not the big deal, what comes next is being able to convert the data into a PDF.
Using Notion's native export feature is messy and doesn't produce the output as expected, the tables look disorganised or the font misaligns and it doesn't stay intact as expected.
A potential solution that's possible would be create everything in a blank Google Document or a Word Document and manually copy paste all the fields one by one onto the document.
This is manually and cumbersome which doesn't scale with records added into the database.
Today, in this guide we will cover a step by step guide on how to turn your Notion Database into a professional looking PDF using an automation tool called PDFOutput.
Why Notion's Built-In Export Falls Short
Notion has a built in pdf export option available which is present under the ••• menu on any page.
Using this option you can generate a single one off page that doesn't have too complex formatting involved such as tables, database views, toggle blocks etc which blocks out lot of things involved.
There's no way to add font, logo and other styling aspects which would preserve the formatting of the document as such.
The real problem starts to arise when the documents scale quickly and you are left with exporting each page one by one.
Having said that, Notion's built in feature to export PDF is great for producing one off document but not meant for producing documents at scale when the records in the database increases.
What Actually Makes a PDF Look "Professional"
Creating a professional looking PDF follows some simple conventions:
Eg : An invoice must look like an invoice with clear branding and total values.
A certificate must like a certificate worth framing each time.
A contract should look like a contract with all terms and conditions laid out properly.
Today, we are going to create a Notion Database which will hold all the records and will be able to generate the PDFs directly.
For this demonstration we will be converting an Invoices Database to a PDF.
Meet PDFOutput: Templates + Your Notion Database
!PDFOutput dashboard showing the automation setup
PDFOutput is a document automation tool built specifically around this problem.
Instead of exporting a Notion page the way it looks on the screen, you can design your template separately.
!PDFOutput template format options
PDFOutput supports using templates in one of the following 4 formats:
Once the template is decided it's time to setup the template with placeholder.
A placeholder defines how and what you want to replace in the template with database values.
Eg : If you add placeholder {{ClientName}} or {{InvoiceNumber}} onto the template and you have the same fields, i.e. "ClientName" or "InvoiceNumber" in the Notion Database.
This will fetch the ClientName and InvoiceNumber values from the Invoices Database and replace the placeholder fields with the values obtained from the notion database.
So once the automation is setup, PDFOutput will automatically read each row, match every placeholder to the matching property, and generate a finished, formatted PDF — one per row, styled exactly the way you built the template, with none of Notion's block editor left in it.
As the template lives outside Notion, you get control over the design: add your own fonts and logo, put the tables that can expand automatically when an invoice has more line items.
It can preserve formatting that stays consistent no matter who adds the next entry to the database.
PDFOutput also supports generating PDFs in batches of PDFs at once.
There's option for batch exporting the PDFs directly back into the notion Database once the automation is setup and running.
You can even preview the output before setting up the actual automation which helps to understand how the actual generated pdf will look like.
Step-by-Step: How to Turn Your Notion Database into Professional PDFs
Step 1: Connect Your Notion Database
For this demonstration, we will use 4 connected databases for setting up the Invoice Management workflow:
- DB_Invoices (Primary Invoices Database)
- DB_LineItems (Contains the lineitems of the invoices added)
- DB_Clients (Contains the information of the clients to send invoice to)
- DB_Projects (Contains the projects for which the invoices are created)
- Notion Pages or
- Google Document or
- Word File or
- PDF File
- A Notion page is one of the fasted and easiest option if you're already setup your template there.
- A Google Doc or a Word file gives you more traditional formatting flexibility, which allows you to setup your template as per your needs.
- A PDF works if you already have a fixed layout which you would want to use again and again — a letterhead, for example — that you want to keep using along.
- Choosing Google Drive folder (for saving PDFs in the Google Drive)
- Defining the PDFOutput File Name (choose the database column to define the PDFOutput file name)
- Overwriting Files (choose yes if you want to overwrite the files each time its generated)
- Drive Attachment Field (choose the property where the Google Drive file links will be stored)
- E-Signatures (toggle this on to enable adding e-signatures to the PDFs generated)
- GeneratePDF - Mark this as "Ready to Generate" to generate the PDFs right inside the Notion Database.
- PDFFiles - This is where the generated PDFs will be stored once they are generated from the automation.
- google_drive_file - This stores the URL (link) of the files saved in the Google Drive (if enabled earlier).
- Choose Document - This will allow selection of the template which will be used to define the format of the template to generate PDF.
- In order to generate the PDF, just click on the GeneratePDF property and mark the records as Ready to Generate, this will start processing the record and then generate the PDF right inside the Notion Database.
- Once the documents are processed, the GeneratePDF property changes to Completed status and it creates the PDFs in the PDFFiles column.
- Freelancers and agencies who are generating invoices for every client at the end of the month, without opening a single document one by one.
- HR teams who are producing offer letters, certificates, or even onboarding documents that are personalized to each employee's record maintained.
- Course creators and trainers who are issuing course completion certificates for the students the moment they finish their course.
- Real estate businesses and operations teams who want to convert a deal-tracking database directly into contracts / agreements PDFs.
- Sales teams who are generating quotes or proposals that stays in sync with a live database instead of a static template edited by hand everytime.
- Match placeholder names to property names exactly, including capitalization — it's the most common cause of a failed mapping. (Eg
{{Invoice_Number}}is not the same as{{invoice_number}}), so make sure its mapped exactly as required. - Design the template keeping the best possible outcome expected.
- Keep one template per document type rather than forcing a single layout to handle invoices and contracts at once. Using different templates for each defined purpose helps keep everything clean and intact for automation.
- Always preview your document before setting up the actual automation, testing with preview gives you an assessment of how the actual output will look like.
Here's a quick overview of what each database will contain:
1. DB_Invoices
!DB_Invoices database view in Notion
This database is the primary database and will contain the following properties in the DB_Invoices:
| Property | Used For |
|---|---|
| Invoice Number (Title Property) | Specifying the Invoice No |
| Client Name (Relation Property with DB_Clients) | Displays the Client Name (Fetched from DB_Clients) |
| Description (Relation Property with DB_LineItems) | Displays the Products / Services Description in the Invoice |
| Projects (Relation Property with DB_Projects) | Displays the project details for which the Invoice is raised |
| Issue Date (Date Property) | Date on which Invoices are Issued |
| Due Date (Date Property) | Date on which Invoices are Due |
| Subtotal (Rollup of Sum of Amount Property from DB_LineItems Database) | Displays the subtotal of amount values from DB_Line Items for each Invoice |
| Tax Rate (Number Property of Percent Number format) | Displays the rate of tax applied on the products |
| Discount (Number Property of Percent Number format) | Displays the discount applied on the products |
| Payment Instructions (Text Property) | Displays the instructions for payment |
| Total Amount (Formula Property) | Final Amount after applying discount - ((Subtotal-(Discount*Subtotal))) |
| Amount (Rollup of Amount Property from DB_LineItems Database) | Displays unique amount values from DB_LineItems for each Invoice |
| Client_Address (Rollup of Address Property from DB_Clients database) | Displays the client address from DB_Clients database |
| Hours (Rollup of Hours Property from DB_LineItems database) | Displays the hours from DB_LineItems database |
| Rate (Rollup of Rate Property from DB_LineItems database) | Displays the rate from DB_LineItems database |
2. DB_LineItems
!DB_LineItems database view in Notion
This database holds line item entries for the products / services rendered for a particular invoice.
Eg : For the Invoice INV-001 we have Graphics Design and Website Development being rendered, so it includes all the details for those 2 services being offered including the Hours, Rate and Amount.
Following are the properties used in the DB_LineItems database:
| Property | Used For |
|---|---|
| Description (Title Type) | Displays the description for the products / service |
| Hours (Number Type) | Displays the Hours involved in rendering the service |
| Rate (Number Type) | Displays the rate of charge for service offered |
| Amount (Formula Type) | Final Amount - Hours * Rate |
3. DB_Clients
!DB_Clients database view in Notion
This database holds the client details for whom the invoice is created for.
Eg: Alex is raised the Invoice INV-001, Martin is raised Invoice INV-002 etc.
Following are the properties created in the DB_Clients database:
| Properties | Used For |
|---|---|
| Client Name (Title Type) | Used to determine the Client Name |
| Invoices (Relation Property connected to DB_Invoices) | Used to determine the Invoice Number |
| Projects (Relation Property connected to DB_Projects) | Used to determine the Project for the invoice |
| Contact Person (Text Property) | Used to mention the contact name of the person |
| Email (Email Property) | Used to mention the email address of the person |
| Phone (Phone Property) | Used to mention the phone number of the person |
| Address (Text Property) | Used to mention the address of the person |
4. DB_Projects
!DB_Projects database view in Notion
This database holds the project details for which the invoice is created.
Eg: Project Martin is created for the client Martin against whom the Invoice INV-002 is created.
Following are the properties created in the DB_Projects database:
| Properties | Used For |
|---|---|
| Project Name (Title Type) | Used to determine the project name |
| Clients (Relation Type linked to DB_Clients database) | Used to determine the clients linked to projects |
| Line Items (Relation Type linked to DB_LineItems database) | Used to determine the products / services linked to each Project |
| Project Description (Text Type) | Used to determine the project description |
| Project Status (Status Type) | Used to determine the project status |
| Start Date (Date Type) | Used to determine the project start date |
| End Date (Date Type) | Used to determine the project end date |
Once you have the above database setup ready, its time to setup the Invoice Template to be used for PDF generation.
Before connecting anything and proceeding further, take a look through your database and make sure all the property names are clear and consistent as required — these are what your template placeholders will map to, so "Client Name" and "client_name " (with a trailing space and underline) are different and will thus cause you problems later.
Fill in the fields you want on the document for at least a few rows first, and if any of your data comes from a linked or related database, make sure to double-check those relations and ensure these are set up correctly.
PDFOutput can pull data across relations and rollups, but only if they're connected properly on the Notion side first.
Step 2: Build Your Invoice Template
As mentioned earlier, PDFOutput supports template in one of the following 4 formats:
Decide which format suits you the best.
This works well for contracts, reports, and anything that is text-heavy and even for Invoices which requires branding and other aspects added onto the template document.
Imp Note : Wherever you decide to build the template, make sure to add placeholders that match your database property names exactly, wrapped in double curly braces:
Eg: {{Client Name}}, {{Issue Date}}, {{Total}}, and so on. Then design the actual layout the way you want the finished document to look like — including logo, headings, tables etc and whatever the document calls for.
For this demonstration, we are going to use the Invoice Template already added onto PDFOutput.
!Invoice template with placeholders in PDFOutput
> Did you know? — PDFOutput also supports creation of e-signatures in the documents while generating the PDFs.
Step 3: Connect Invoices Database and Invoice Template Using PDFOutput
In this step, we are going to connect PDFOutput with the Invoices Notion Databases (Step - 1) and Invoice Template (Step - 2) and setup the Invoice Automation.
I have written a detailed guide on how to create Invoices on automation which explains how to setup the PDFOutput automation for the first time.
!PDFOutput automation setup connecting database and template
Follow the instructions mentioned in the above guide and setup PDFOutput to establish the automation for the first time. Once the automation is setup correctly and you see an active automation showing in the dashboard, its time to start generating PDFs!
Step 4: Additional Settings for Configuration
Once the automation is setup, few additional settings that can be configured are as follows:
Besides above, also take a while to set up currency symbols, add decimal places, define number formatting, and set timezone so dates and figures show up the way your reader expects, rather than in raw database format.
This truly matters more than it sounds — a date field that looks fine in Notion may not come out in the correct format to someone in another country if you tend to skip the same.
Step 5: Setup the Automation
Once the template and mapping work the way you want as per the preview document created earlier, you don't need to open PDFOutput every time.
!Click on Setup Automation to activate the automation
Simply click on Setup Automation and then the automation will be setup and it will show an Active status in the PDFOutput dashboard. This will also add few additional properties onto the database which will be used to generate the PDFs:
!Additional properties added to the Notion database after automation setup
Step 6: Generate Your PDFs
All the PDFs generated will be stored right back into the Notion Database either using a Button or marking your records as Ready to Generate in the Invoices Database.
!Generated PDFs stored back in the Notion Database with Completed status
PDFOutput automatically matches the placeholders in the form of {{…}} to the database columns wherever the names match against each other and it fetches the values from the database one by one and replaces the placeholder values with that.
If you are generating the Invoices with more than format, you can add as many invoices documents as necessary and choose the particular document style that you need under the Choose Document column from the Invoices Database.
How to Generate Batch Invoices in Bulk in Notion
!Batch PDF generation option in PDFOutput
PDFOutput also supports production of PDFs in batches as well (in this case its invoices).
Once the automation is activated, click on the 3-dots next to the active automation and click on Batch PDFs, this will generate PDFs in batches of 100 PDFs at once.
So if you have a lot of PDFs to generate from the automation, click on this and it will produce PDFs in batches for your requirement.
Where This Automation Can Come in Handy
A few situations where this kind of automation setup pays for itself quickly includes:
Key Tips for Designing a Template Correctly
Here's few key tips necessary to follow up along for the correct principles for setting up the template:
Frequently Asked Questions
1. Can I convert a Notion database to PDF for free?
Yes. PDFOutput offers a free way to get started (upto 10 PDFs for free), with no credit card required, so you can test the setup on your own database before committing to paid plans.
2. Does Notion have a built-in way to export a database as PDF?
Yes, under the ••• menu on any page. It works fine for simple, text-based pages, but database views like boards and timelines often lose their layout, and there's no control over branding or design.
3. Can I use a Word document instead of a Google Doc for my template?
Yes — PDFOutput supports Word files, Google Docs, PDF files, and Notion pages as templates, so you can build wherever you're already comfortable working.
4. Does it work with relations and rollups from linked databases?
Yes, PDFOutput is built to pull data across related and rollup properties, so information from linked databases can appear on the same document without any issues.
5. Do I need any coding knowledge to set this up?
No. The whole setup is placeholder-based — add {{PlaceholderName}} to your template, match it to a database property, and generate. No code is required to generate the PDFs.
Wrapping Up
A Notion database is a great place to keep your work organized.
It was never really built in the first place to be a document generator — and it doesn't need to as well, as tool like PDFOutput does the job really well. Set the template once, connect it to your Notion database, and every new row now becomes a finished, on-brand PDF without ever touching a copy-paste mechanism again.
If you've been exporting documents manually everytime up until now, even automating the most repetitive one — invoices, certificates, whatever it is for you — is always worth the short setup time it takes to get it right.
Ready to turn your Notion database into professional PDFs? Get started for free and set up your first automation in minutes.