Skip to content

Choose your path

NextPDF gives you several entry points. The right choice depends on where your code runs and what kind of Portable Document Format (PDF) output you need. Use this page to make three choices: which distribution to install, which Hypertext Markup Language (HTML) renderer to use, and when a workload needs Pro or Enterprise.

Read the section that matches your question, or skim the decision summary at the end.

Start with how your application calls the engine. Use the first row that matches your situation.

Your situationInstallWhy
A plain PHP project, a library, or a command-line interface (CLI) toolNextPDF core (nextpdf/core)The engine only. It makes no framework assumptions and does not run a service.
A Laravel, Symfony, or CodeIgniter applicationThe matching framework integrationYou get container bindings, response helpers, and queue jobs on top of core.
A non-PHP service, an agent, or another runtime that must call the engine over a networkNextPDF Server (nextpdf/server)A single service exposes the engine over Model Context Protocol (MCP), REST, and gRPC.
Python code that needs PDF files from a NextPDF ServerThe Python Software Development Kit (SDK) (pip install nextpdf)A typed client for a running server. It does not embed the engine.

Two points are easy to miss:

  • A framework integration includes core. You do not install both separately. The adapter declares and resolves nextpdf/core for you.
  • The Python SDK is a client, not an engine. It connects to a NextPDF Server endpoint. PDF generation happens in PHP on the server.

NextPDF can render HTML to PDF in four ways. The built-in pipeline covers most documents without extra setup. Use the three renderer packages when you need browser-grade layout or need to connect to an existing service.

RendererPackageWhere it runsChoose it when
Built-in writeHtml()nextpdf/coreIn-process, pure PHPYou want a supported HTML and Cascading Style Sheets (CSS) subset with no browser and no network call.
Artisannextpdf/artisanHeadless Chrome on the hostYou need full Chrome layout — flexbox, grid, complex selectors, web fonts — with selectable text.
Cloudflarenextpdf/cloudflareCloudflare Browser Rendering at the edgeRendering belongs at the edge, or you want to keep browser processes off your own hosts.
Gotenbergnextpdf/gotenbergA Gotenberg service you operateYou convert office documents (DOCX, XLSX) or HTML through an existing Gotenberg deployment.

How to read the table:

  • Start with the built-in pipeline. It is the fastest path and has no external dependency. Before you rely on a property, check it against the CSS support matrix.
  • Use Artisan when a layout goes beyond the supported subset and rendering should stay on your infrastructure. It launches a Chrome process, so plan for that lifecycle.
  • Use Cloudflare when you want the same browser fidelity and prefer edge rendering to local browser processes.
  • Use Gotenberg for office-document conversion, or when you already run Gotenberg and want NextPDF to drive it.

The core engine generates, renders, and inspects PDFs at no cost and with no license. NextPDF Pro and NextPDF Enterprise are the two licensed tiers of the nextpdf/premium package. Installing it adds capabilities without changing the core API.

You need toTierCapability
Digitally sign a PDF with a PDF Advanced Electronic Signatures (PAdES) baselineProSoftware-key signing implementations.
Produce archival PDF/A outputProPDF/A conformance and archival profiles.
Embed an electronic invoice (Factur-X / ZUGFeRD)ProE-invoice contract implementations.
Sign with a hardware security module (HSM)EnterpriseHardware-backed key operations.
Issue qualified electronic signaturesEnterpriseQualified-signature workflow and the full compliance surface.

Two rules keep the decision honest:

  • If your output is unsigned, non-archival PDFs, core is complete. You do not need a license.
  • When you install nextpdf/premium, the framework integrations and the server detect it automatically. They expose the extra capabilities through the same container keys and tool catalog. Your application does not need code changes to adopt it.

Distribution

Plain PHP → core. Framework app → the matching integration. Network boundary → the server. Python client → the Python SDK.

HTML renderer

Supported subset, no dependency → writeHtml(). Browser fidelity on your hosts → Artisan. At the edge → Cloudflare. Office conversion → Gotenberg.

Licensed tier

Unsigned PDFs → core. Signing, PDF/A, e-invoice → Pro. HSM or qualified signatures → Enterprise.

Still unsure?

Install core, run Your first PDF, and add a package only when a concrete need appears. You can change any of this later.