Ga naar inhoud

Kennisbank voor het oplossen van problemen

Gebruik deze kennisbank om een fout die optreedt te koppelen aan de oorzaak en de bijbehorende oplossing. Elke vermelding is gebaseerd op de eigen exception-klassen, faalpad-tests en broncodebewaking van de engine, niet op speculatie. Als de engine voor een bepaalde fout geen codepad heeft, verzint deze kennisbank er ook geen.

Deze kennisbank bevat vier onderwerppagina’s:

  • Validatie van handtekeningen — ongeldige handtekeningen, onvolledige ketens, onbekende intrekkingsstatus en tijdstempelfouten.
  • Validatie van PDF/A en PDF/UA — problemen met Portable Document Format/Archive (PDF/A) en Portable Document Format/Universal Accessibility (PDF/UA), waaronder een ontbrekende output intent, niet-getagde content, een ontbrekende taalinstelling en fouten bij ingesloten lettertypen.
  • Lettertypen en tagging — niet-gevonden lettertypen, subsetting, CJK-dekking en problemen met de structuurboom.
  • Versleuteling en machtigingen — ontsleutelingsfouten en de begrenzing van de machtigingsvlag.

Elke vermelding bestaat uit vijf onderdelen:

  1. Symptoom — wat zichtbaar is: een exception-klasse, een fragment van een bericht of een oordeel van een downstream-validator.
  2. Waarschijnlijke oorzaak — de invoer- of configuratievoorwaarde die de engine meldt.
  3. Bewijs / diagnose — hoe de oorzaak wordt bevestigd. Dit onderdeel noemt de exacte exception-klasse, het getContext()-veld of de test die het gedrag aantoont, zodat verificatie mogelijk is in plaats van giswerk.
  4. Oplossing — de opeenvolgende stappen om de oorzaak weg te nemen.
  5. Gerelateerd — de modulereferentiepagina of verwante vermelding om daarna te raadplegen.

NextPDF identificeert een fout aan de hand van de PHP-klasse, niet aan de hand van een foutcode als tekenreeks. Er bestaat geen NPDF-####-constante in de exception-klassen. Vang de leaf-exception op wanneer een gerichte reactie nodig is en lees ContextAwareExceptionInterface::getContext() voor gestructureerde diagnostische velden. Gebruik NextPDF\Exception\NextPdfException als basistype; voor beveiligingsfouten geldt daarnaast NextPDF\Security\Exception\SecurityException.

Lees voor de volledige hiërarchie en de regels voor de catch-volgorde de exception-referentie.

<?php
declare(strict_types=1);
use NextPDF\Exception\NextPdfException;
use NextPDF\Contracts\ContextAwareExceptionInterface;
try {
// ... engine call ...
} catch (NextPdfException $e) {
$context = $e instanceof ContextAwareExceptionInterface
? $e->getContext()
: [];
\error_log($e->getMessage());
// $context carries snake_case primitive fields safe to serialize.
}

Deze kennisbank beschrijft hoe de engine fouten detecteert en meldt. De kennisbank behandelt geen conformiteitsoordelen van externe validators, zoals veraPDF of callas; die tools passen hun eigen regelsets toe. Wanneer de engine een bewerking weigert om een document binnen een profiel te houden, zoals het weigeren van versleuteling onder PDF/A, verwijst de betreffende vermelding naar de bepalende clausule en de exception die dat afdwingt.

Woordenlijst: context-aware exception