NextPDF FAQ
In één oogopslag
Sectie met titel “In één oogopslag”Deze pagina beantwoordt de vragen die het eerst opkomen wanneer je NextPDF evalueert of een nieuw project start. Elk antwoord is kort en verwijst naar de pagina die het volledig behandelt. NextPDF is een PHP 8.4-engine die Portable Document Format (PDF) 2.0-documenten genereert en inspecteert — het bestandsformaat dat is gedefinieerd door ISO 32000-2.
Als je helemaal nieuw bent, lees dan eerst Aan de slag en kom hier daarna terug voor de details.
Aan de slag
Sectie met titel “Aan de slag”Welke editie heb ik nodig: Core, Pro of Enterprise?
Sectie met titel “Welke editie heb ik nodig: Core, Pro of Enterprise?”Begin met Core. De open-source core (nextpdf/core) genereert PDF-uitvoer,
rendert ondersteunde HTML naar PDF’s en inspecteert PDF’s onder de
Apache-2.0-licentie, kosteloos. Core produceert al CMS SignedData-handtekeningen
voor de baselineniveaus B-B en B-T van PDF Advanced Electronic Signatures
(PAdES). Kies Pro wanneer je geavanceerde generatie en documentbewerkingen
nodig hebt, uitvoer van elektronische facturen (Factur-X / ZUGFeRD), of
geavanceerde ondertekeningsworkflows zoals remote, cloud-KMS en sequentieel
ondertekenen. Kies Enterprise wanneer je archiveringsworkflows voor
PDF/A-authoring nodig hebt, de langetermijnniveaus van PAdES (B-LT / B-LTA) met
een Document Security Store en document-timestamps, hardware-ondersteund
ondertekenen via een hardware security module (HSM), of gekwalificeerde
elektronische handtekeningen. Pro en Enterprise zijn de twee gelicentieerde
edities van NextPDF Premium, de betaalde lijn; zie
Kies je pad.
Is het echt Apache-2.0?
Sectie met titel “Is het echt Apache-2.0?”Ja, voor de core. nextpdf/core declareert "license": "Apache-2.0" en levert
de volledige tekst van de Apache License 2.0 mee in het LICENSE-bestand. Je mag
de core gebruiken, aanpassen, herdistribueren en commercieel exploiteren, met
inachtneming van de naamsvermeldings- en NOTICE-vereisten (Apache-2.0 §4).
NextPDF Pro en NextPDF Enterprise zijn proprietaire commerciële edities en vallen
niet onder die licentie. De naam en het logo van NextPDF zijn handelsmerken,
los van de codelicentie. Zie Productlicentiëring.
Wat is de minimale PHP-versie?
Sectie met titel “Wat is de minimale PHP-versie?”PHP 8.4. De pakketconstraint is >=8.4 <9.0, dus Composer weigert te installeren
op PHP 8.3 of lager, of op PHP 9. NextPDF richt zich op één moderne runtime en
gebruikt de taalkenmerken daarvan direct. Zie
NextPDF installeren.
Heeft het een externe binary of een headless browser nodig?
Sectie met titel “Heeft het een externe binary of een headless browser nodig?”Nee, niet voor de core-engine. De native engine is geïmplementeerd in PHP en
standaard PHP-extensies, zonder externe PDF-binary en zonder verplichte headless
browser: de fluent API en de ingebouwde writeHtml()-HTML-pijplijn draaien
in-process zonder browser en zonder netwerkaanroep. Een Chrome- of
Chromium-binary is optioneel en alleen nodig voor de Artisan-renderer
(writeHtmlChrome()), die je apart installeert als nextpdf/artisan. De
Cloudflare- en Gotenberg-bruggen zijn eveneens optioneel en roepen een service
aan. Zie Kies je pad.
Welke PHP-extensies vereist het?
Sectie met titel “Welke PHP-extensies vereist het?”De composer.json van de core vereist de standaardextensies ext-mbstring,
ext-zlib, ext-intl, ext-gd, ext-curl en ext-openssl, dat zijn algemeen
beschikbare PHP-extensies; zorg dat ze geïnstalleerd en ingeschakeld zijn in je
runtime. ext-curl ondersteunt de optionele netwerkronde — RFC 3161-timestamping
en het ophalen van externe assets — dus offline native generatie maakt er geen
gebruik van, maar Composer vermeldt het toch als harde vereiste. Integraties
controleren tijdens het opstarten op de extensies die ze nodig hebben en stoppen
met een duidelijke melding als er een ontbreekt. De volledige lijst staat in de
composer.json van het pakket; zie
NextPDF installeren.
Hoe genereer ik mijn eerste PDF?
Sectie met titel “Hoe genereer ik mijn eerste PDF?”Installeer de core en bouw vervolgens een document met de fluent API:
<?php
declare(strict_types=1);
require_once __DIR__ . '/vendor/autoload.php';
use NextPDF\Core\Document;
$document = Document::createStandalone();$document->addPage();$document->setFont('helvetica', 'B', 24);$document->cell(0, 15, 'Hello, NextPDF!', newLine: true);$document->save(__DIR__ . '/first.pdf');Loop het stap voor stap door in Je eerste PDF.
Edities en licentiëring
Sectie met titel “Edities en licentiëring”Heeft Core functiebeperkingen of een watermerk?
Sectie met titel “Heeft Core functiebeperkingen of een watermerk?”Nee. Core is de open-source engine voor de Core-functieset, zonder watermerk en zonder nag screen. Voor de Core-functieset — generatie, inspectie, encryptie, PDF/A- en PDF/UA-uitvoerprimitieven en ondertekenen met softwaresleutel (B-B/B-T) (zonder de Premium-workflows voor langetermijnvalidatie en sleutelbeheer) — is Core compleet. Het evaluatiewatermerk geldt alleen voor een Premium-evaluatietoekenning, waarbij je de volledige functieset van Pro en Enterprise test achter een verwijderbaar merkteken; een betaalde licentie verwijdert het zonder enige wijziging in de applicatiecode. Zie Licentiëring en activering.
Heb ik codewijzigingen nodig om naar Pro of Enterprise te upgraden?
Sectie met titel “Heb ik codewijzigingen nodig om naar Pro of Enterprise te upgraden?”Meestal niet. Wanneer je nextpdf/premium installeert, detecteren de
framework-integraties en de server dat automatisch en stellen ze de extra
capaciteiten beschikbaar. De meeste applicaties behouden dezelfde
high-level-integratiepunten; sommige Premium-workflows kunnen configuratie of
functiespecifieke aanroepen vereisen. Je activeert eenmalig per deployment een
ondertekende licentie-envelop. Zie
Licentiëring en activering.
Mag ik de core in een closed-source commercieel product gebruiken?
Sectie met titel “Mag ik de core in een closed-source commercieel product gebruiken?”Ja. De Apache License 2.0 kent geen niet-commerciële beperking. Je mag de core
gebruiken in closed-source, betaalde of interne commerciële producten, mits je de
naamsvermeldings- en NOTICE-verplichtingen naleeft en de codelicentie niet
behandelt als toestemming om het NextPDF-merk te gebruiken. Zie
Productlicentiëring en
Handelsmerk- en merkgebruik.
Capaciteiten
Sectie met titel “Capaciteiten”Kan het PDF’s lezen en parsen, of alleen schrijven?
Sectie met titel “Kan het PDF’s lezen en parsen, of alleen schrijven?”Allebei, met een kanttekening. NextPDF schrijft PDF’s en leest ze ook: de
Inspect-module leest een bestaand bestand in tot een gestructureerd
InspectResult met gegevens over complexiteit, lettertype, afbeelding en risico,
en je kunt bestaande documenten samenvoegen en splitsen. Inspect is gemarkeerd
als experimental, dus de vorm van het resultaat kan veranderen tussen
minor-versies — gebruik het voor diagnostiek en gating, niet als een
langlevend contract. Zie de Inspect-module.
Produceert het selecteerbare, doorzoekbare tekst?
Sectie met titel “Produceert het selecteerbare, doorzoekbare tekst?”Ja. Zowel de fluent API als de ingebouwde writeHtml()-pijplijn zenden echte
tekstinhoud uit, geen gerasterde afbeeldingen, dus de uitvoer is selecteerbaar en
doorzoekbaar. De writeHtmlChrome() van de Artisan-renderer houdt de tekst
eveneens selecteerbaar. Zie
Je eerste PDF.
Hoe werkt het renderen van HTML en CSS?
Sectie met titel “Hoe werkt het renderen van HTML en CSS?”De core-engine bevat een pure-PHP HTML-pijplijn. writeHtml() rendert een
HTML-fragment met een ondersteunde subset van CSS direct in de pagina, zonder
browser en zonder netwerkaanroep. Wanneer een lay-out volledige browsergetrouwheid
nodig heeft — zoals flexbox, grid of webfonts — installeer dan de
Artisan-renderer en roep writeHtmlChrome() aan. Controleer de
CSS-ondersteuningsmatrix voordat je op een
eigenschap vertrouwt.
Hoe werken lettertypen?
Sectie met titel “Hoe werken lettertypen?”De ingebouwde standaard lettertype-aliassen zoals Helvetica werken zonder configuratie voor eenvoudige WinAnsi-tekst, dus je eerste document heeft geen lettertypebestanden nodig. De ingebouwde Latijnse standaardlettertypen zijn geschikt voor eenvoudige WinAnsi-tekst; Symbol en ZapfDingbats gebruiken hun eigen coderingen; om andere schriften te renderen registreer en sluit je een lettertype in waarvan de karaktermap en het shapingpad dat schrift ondersteunen. Zie de lettertype-ondersteuningsmatrix en de Font-module.
Ondersteunt het PDF/A en toegankelijkheid (PDF/UA)?
Sectie met titel “Ondersteunt het PDF/A en toegankelijkheid (PDF/UA)?”Ja, met een duidelijke grens: ondersteuning voor een profiel is geen
conformiteit. De core levert de conformiteitsdiscriminator en
tagging-primitieven — enableTaggedPdf() schakelt de getagde-PDF-structuuruitvoer
in die wordt gebruikt voor PDF/UA-workflows, en enablePdfA() selecteert een
PDF/A-uitvoerprofiel in Core; de Premium-edities voegen hogere
archiveringsworkflows voor authoring en tooling (validatie, beleid en
productieoperaties) daarbovenop toe. NextPDF zendt de structurele artefacten uit
die een profiel vereist; een onafhankelijke validator zoals veraPDF beslist of
een bepaald bestand daadwerkelijk conform is. Zie
Conformiteit en de
Toegankelijkheidsmodule.
Hoe onderteken ik een PDF?
Sectie met titel “Hoe onderteken ik een PDF?”De core kan Cryptographic Message Syntax (CMS) SignedData-handtekeningen
produceren en kan RFC 3161-timestamps toepassen (het B-T-niveau), met behulp van
ondersteunde softwaresleutelalgoritmen via de geconfigureerde
ondertekeningsprovider. Je code is afhankelijk van het SignerInterface-contract,
dus dezelfde aanroep werkt over alle edities heen. De langetermijnniveaus
PAdES B-LT en B-LTA, sleutelbeheer met HSM en PKCS#11 en gekwalificeerde
handtekeningen zijn Enterprise-capaciteiten; cloud- en KMS-ondersteunde
ondertekeningsworkflows worden in Pro geleverd. Core produceert de
baselinestructuren B-B en B-T. Zie de
Ondertekeningsmodule.
Productie
Sectie met titel “Productie”Is het worker-safe en thread-safe?
Sectie met titel “Is het worker-safe en thread-safe?”Een Document is voor eenmalig gebruik: zodra je er een hebt geschreven, maak je
een nieuwe instantie voor het volgende document in plaats van die te hergebruiken.
Dat maakt het een natuurlijke match voor het per-request-, per-job-model dat
PHP-FPM, queue workers en frameworks gebruiken — elke werkeenheid bouwt zijn
eigen document. Wanneer je niet-vertrouwde invoer parset of samenstelt, voer dat
werk dan uit in een begrensde worker en houd de resource guards (maxFiles,
maxTotalBytes, maxBytes) strak. Zie de
Document-module en het
engine-dreigingsmodel.
Is de uitvoer deterministisch?
Sectie met titel “Is de uitvoer deterministisch?”Ze is structureel deterministisch, maar standaard niet byte-voor-byte identiek.
Twee runs van dezelfde invoer produceren structureel gelijke PDF’s, maar elke
draagt een verse trailer en document-/ID, dus de bytes verschillen. Ondertekenen
en timestamps voegen bewust verdere variatie per run toe. Plan vergelijkingen
rond structurele gelijkheid, of normaliseer de vluchtige velden, in plaats van
identieke bytes tussen runs te verwachten.
Hoe deploy ik het?
Sectie met titel “Hoe deploy ik het?”Commit composer.lock zodat elke gedeployde worker dezelfde engine-versie
oplost, en deploy het vervolgens zoals elke PHP-bibliotheek — native generatie
heeft geen daemon, browser of netwerk nodig; timestamping (B-T), externe assets of
de optionele browserbrug vereisen geconfigureerde netwerktoegang. Als niet-PHP-
services de engine nodig hebben, draai dan NextPDF Server, die
hem blootstelt via Model Context Protocol (MCP), REST en gRPC. Plaats voor Premium
de ondertekende licentie-envelop waar de deployment hem laadt en voer de
eenmalige activeringsstap uit; gecachete licentiestaat betekent dat normale
verwerking geen licentieservice nodig heeft, dus air-gapped deployments worden
ondersteund. Zie NextPDF installeren en
Licentiëring en activering.
Waar breng ik een storing naartoe als er iets misgaat?
Sectie met titel “Waar breng ik een storing naartoe als er iets misgaat?”NextPDF rapporteert fouten per PHP-exceptionklasse, niet per string-foutcode, en context-bewuste excepties dragen gestructureerde diagnostische velden. De Troubleshooting-kennisbank brengt veelvoorkomende storingen op het gebied van handtekeningen, PDF/A, PDF/UA, lettertypen, tagging en encryptie in kaart met hun oorzaak en oplossing.