Ga naar inhoud
getnextpdf.com

NextPDF FAQ

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.