Skip to main content

Introduction

What Nuxt PDF is, when to reach for it, and when a different tool fits better.

Nuxt PDF authors server-rendered PDFs as ordinary Vue components. You write a Single File Component in pdfs/, and a Nuxt module renders it to a PDF on the server. Vue does the authoring; React PDF's framework-neutral layout, font, and serialization packages do the rendering. React itself is never a production dependency.

This is an external alpha. It has one Nuxt module, one document tree, and one Node server renderer. The tested contract includes SVG drawing, a table of contents, internal links, bookmarks, opt-in remote resources, test utilities, and render limits.

Why it exists

A data-driven document can require a low-level PDF library or a headless browser. Nuxt PDF provides another option. Use the Vue component model with typed props. A PDF layout engine renders the document on the server.

When to use it

Reach for Nuxt PDF when the document is structured and data-driven and you control the layout:

  • invoices, quotes, and receipts,
  • reports and statements with a table of contents,
  • certificates, tickets, and labels.

When not to use it

Nuxt PDF is honest about its boundaries. Pick a different tool when:

  • You want to print an existing web page. Use headless Chromium (Playwright or Puppeteer). Nuxt PDF does not compile browser CSS or print HTML.
  • You want to display a PDF in the browser. Use PDF.js. Nuxt PDF renders on the server; it is not a viewer.
  • You want to edit, merge, fill, or sign an existing PDF. Use pdf-lib or a signing service. Nuxt PDF produces new documents; it does not manipulate existing ones.

What is deliberately not included

The current alpha has no CSS compiler, HTML printing, table engine, chart engine, form support, signing support, tagged PDF output, browser renderer, or edge renderer. It does not guarantee byte-identical output across machines. These limits define the current scope. The Conformance and philosophy section explains the design. CONFORMANCE.md records the exact tested boundary.