Quaterio

Report PDF generation

Build multi-page report templates with automatic page breaks, headers, footers and page numbers. Fill them manually or automate via API.

The problem

Multi-page reports are where most document tools fall apart. Canva doesn't handle flowing content across pages. Word breaks layouts. InDesign is overkill. And PDF APIs expect you to manage pagination yourself in HTML.

The solution

Quaterio's pagination engine automatically flows your content across pages. Add headers, footers, page numbers, your logo and any page size. Build the template visually, then export or generate reports via the API with variable data.

What you get

  • Automatic content pagination across pages
  • Headers and footers with logo placement (9-point grid)
  • Page numbers with configurable position
  • A4, Letter, Legal, A3, A5 or custom page sizes
  • Text, image, table and HTML content blocks
  • Variable placeholders for report title, date, author and data
  • Multi-column layouts
  • CMS integrations (pull content from WordPress, Notion, Airtable)
  • Print-ready export (CMYK, outlined fonts, trim marks)
  • Webhooks for generation events

Generate via API

curl -X POST https://quaterio.com/api/v1/generate/template \ -H "Authorization: Bearer q_your_token" \ -d '{ "templateId": "quarterly_report", "variables": { "title": "Q2 2026 Performance Report", "date": "2026-06-30", "author": "Finance Team", "summary": "<p>Revenue grew 24% QoQ...</p>", "data_table": "<table>...</table>" } }'

Available on Business plan and above.

What report generation actually involves

Multi page reports are where most document tools break. Pagination, headers, charts, tables that flow across pages, branded styling: here is how Quaterio handles each part.

Embedding charts and data visualizations

Quaterio renders HTML and does not run JavaScript. Chart libraries like Chart.js, D3 or Recharts that render in the browser will not appear in the exported PDF. The correct path is to render charts server side as static SVG or PNG and embed them as images in the report.

Server side chart rendering is well supported: Node libraries like chartjs node canvas, vega lite's server SVG output, or Python's matplotlib all work. Generate the chart image, host it (or pass as a base64 data URI), and reference it in your template variable.

Headers, footers and page numbers across pages

Every report needs a consistent header with logo and report title, a footer with the date and a confidentiality notice, and page numbers in the right place. Quaterio handles all three as document level settings; they apply to every page automatically, with no per page configuration.

Logos can be positioned on a 9 point grid (corners, edges or center). Page numbers support custom positioning, format ("Page 3 of 12" vs "3"), and can be hidden on cover pages or appendices.

Table of contents and section linking

Quaterio does not auto generate a TOC from heading levels; you build the TOC as content. For reports with stable section structure (most have 5 to 10 fixed sections), this is a one time setup: list the sections as a numbered list, and the PDF preserves internal anchor links for navigation.

For dynamic content where the TOC changes per report, pass the section list as an HTML variable. Your generator emits both the TOC block and the section content from the same source data.

Tables that flow cleanly across page breaks

Long tables (financial reports with hundreds of line items, metric breakdowns by month, and so on) need to break cleanly between pages without orphaning headers or splitting rows mid cell. Quaterio's pagination engine handles this: headers repeat on each page automatically, rows do not split, and column widths stay consistent.

For tables you want to keep on a single page (executive summary tables, comparison charts), the page break inside hint forces the table to stay together. If it does not fit, it starts on the next page.

Executive summary and key metric layouts

The executive summary block is usually two column or three column, with each column highlighting a key metric (revenue, growth rate, customer count) in large display type. Quaterio's multi column blocks support this layout without custom CSS.

For period over period comparisons (Q2 vs Q1, year over year), pass both values as variables and let the template format the comparison with up or down arrows and color coding. The visual delta cells in the HTML to PDF demo template show the pattern.

Pulling data from existing systems

Reports usually source data from somewhere: a BI tool, a database, an analytics platform, a CMS. The Business plan adds 13 ready made CMS connectors (WordPress, Contentful, Strapi, Sanity, Notion, Airtable, Ghost, Directus, Storyblok, Prismic, Shopify, HubSpot and Google Sheets) plus a generic REST connector for anything else. For BI tools or databases, the API path is straightforward: query your data warehouse, format as variables, call Quaterio.

For periodic reports (monthly, quarterly), schedule the data pull and PDF generation as a cron job. The webhook system on Business plans notifies you when the PDF is ready for distribution.

Batch report generation for multiple stakeholders

When the same report needs to ship in 50 versions (per region, per team, per customer), the batch API generates up to 1000 reports in a single call on Enterprise (100 on Business). Each row in the batch can have different variable values, so the regional manager sees their numbers while the customer sees only their own data.

Concurrency is configurable per call (default 5, max 20). Larger batches take longer; runtime scales roughly linearly with row count once you saturate concurrency.

Branding, fonts and design consistency

Organization brand kit settings (fonts per heading level, color palette, default header and footer) apply automatically to every new report. Teams that publish a lot of reports get a single source of truth: change the brand color once and every future report uses it.

For external facing reports that need exact CMYK color matching (annual reports, investor decks for print), the Business plan adds print ready export with CMYK color conversion, outlined fonts and trim marks at the corners.

PDF accessibility and tagged PDF support

Accessible PDFs (those with logical reading order, alt text on images, and proper heading semantics) are increasingly required for government and enterprise reports. Quaterio renders structurally tagged HTML, which Gotenberg (the PDF engine) translates to tagged PDF output.

Full PDF/UA compliance (the formal accessibility standard) requires additional verification beyond default tagging: alt text on every image, language metadata, structure tree validation. For PDF/UA conformant output, treat the Quaterio export as a starting point and run it through a verifier like PAC 3 before final distribution.

Scheduled and recurring report delivery

Recurring delivery (weekly status reports, monthly financials, quarterly board packets) is a workflow concern Quaterio does not own. The typical pattern is a scheduled job (cron, GitHub Actions, n8n) that pulls the data, calls the Quaterio API, retrieves the PDF URL, and forwards it via email or to a shared drive.

For workflows that need delivery confirmation, the webhook system fires when the PDF is generated; chain that to your downstream notification system.

Ready to try it?

Start for free. No credit card required.