Rendering- en I/O-fouten
Reikwijdte
Sectie met titel “Reikwijdte”Deze vermeldingen behandelen de rendering- en input/output (I/O)-uitzonderingen die worden opgeworpen terwijl de HTML-pipeline inhoud lay-out, de paged-media-resolver paginageometrie toewijst, de tekstshaper complexe scripts verwerkt, de typografiefase regels afbreekt, de writer een document serialiseert, de reader een bestaande PDF parset, en de metadatafase een Extensible Metadata Platform (XMP)-pakket leest.
Twee basishiërarchieën verschijnen hieronder, en het verschil bepaalt welke diagnostische
data je kunt lezen na een catch:
NextPdfExceptionimplementeertContextAwareExceptionInterface::getContext(): array. De basis- implementatie geeft een lege array terug; een subklasse draagt gestructureerde sleutels alleen wanneer hijgetContext()overschrijft. Subklassen die hem niet overschrijven stellen hun data nog steeds beschikbaar viapublic readonlyproperties.- Verschillende klassen hier breiden PHP’s
RuntimeExceptionrechtstreeks uit. Zij zijn niet context-bewust en hebben geengetContext()-methode; lees in plaats daarvan hungetMessage()en eventuele publieke properties.
Elke vermelding noemt de exacte klasse, de triggervoorwaarde, de contextsleutels of publieke properties die hij meedraagt, en het herstelpad.
HTML-lay-out en paged media
Sectie met titel “HTML-lay-out en paged media”UnsplittableContentException
Sectie met titel “UnsplittableContentException”- Wanneer hij wordt opgeworpen. De HTML-lay-out-engine werpt deze op wanneer inhoud gemarkeerd met
break-inside: avoid(een tabelcel waarvan de break-beperkingAvoidis) een gemeten hoogte heeft die de bruikbare hoogte van één pagina overschrijdt. De engine kan niet voldoen aan zowel de avoid-break-beperking als de paginagrens, dus faalt hij in plaats van stilletjes te overflowen. - Meegedragen data. Breidt
NextPdfExceptionuit maar overschrijftgetContext()niet, dus geeftgetContext()een lege array terug. De diagnostische data staat oppublic readonlyproperties:gridRow(int),gridCol(int),contentHeight(float, punten), enpageHeight(float, punten). Het bericht noemt de celcoördinaten en beide hoogtes. - Herstel. Verwijder de
break-inside: avoid-beperking op de overtredende cel, verminder de inhoud van de cel zodat hij op één pagina past, of vergroot de pagina- grootte of verklein de marges zodat de bruikbare hoogte de inhoud accommodeert.
BudgetExceededException
Sectie met titel “BudgetExceededException”- Wanneer hij wordt opgeworpen. Retained-modus-lay-out-primitieven werpen deze op wanneer een van
de vier resource-budget-tiers gedefinieerd in architecture decision record
ADR-020 wordt overschreden en de aanroeper koos voor een harde storing in plaats van de
zachte fallback. Het standaardpad werpt niet op:
ContainerLayout::acceptChild()geeftfalseterug, de aanroeper valt terug op block layout, en een waarschuwing wordt afgegeven. De uitzondering is gereserveerd voor configuratietijd-validatie en voor tests die de exacte breach-tuple asserteren. De tiers zijnper-child(een vastgelegde child-stream overschrijdt zijn cap),per-container(het Tier 1 node-count-budget),per-document(het lay-out-pass- of nestingsdiepte-budget), englobal(het SDK-brede 256 MB-peak-resident-set-size-plafond). - Meegedragen data. Overschrijft
getContext(), die een stabiele acht-sleutel- vorm teruggeeft die wordt geconsumeerd door application performance monitoring (APM)-tooling:budgetTier,exceededValue,budgetLimit,containerType,phase,breachOrigin,captureSize, enprocessedItemCount. De eerste vier sleutels zijn de oorspronkelijke v1.0.0-subset en zijn altijd gevuld; de laatste vier vallen standaard terug opnullof0wanneer de constructor zonder hen wordt aangeroepen.getCausalWarningCode()mapt de (tier, container-type)-tuple naar deWarningCodedie het zachte-fallback-pad zou hebben afgegeven. - Herstel. Voor een configuratie-breach, verlaag de gevraagde waarde terug binnen
de gedocumenteerde envelope (bijvoorbeeld, het retained-node-budget accepteert
5.000tot100.000viaConfig::withRetainedNodeBudget()). Voor een content-breach, verminder de container-nesting of het node-count, of vertrouw op de standaard zachte-fallback naar block layout in plaats van te kiezen voor het harde-storingsoppervlak.
UnsupportedNamedPageException
Sectie met titel “UnsupportedNamedPageException”- Wanneer hij wordt opgeworpen. De paged-media-fase werpt deze op, fail-closed, wanneer een
document een benoemde
@page <ident> { … }-regel declareert (gebonden aan inhoud via depage: <ident>-property). Named pages uit CSS Paged Media Level 3 §3.4 en Level 4 §3.2 — inclusief de pseudo-classes:first,:left,:righten:blanken benoemdesize:- enrotate:-overrides — worden geparset maar geen productie-lay-out-pad consumeert ze. De engine weigert in plaats van de stilletjes-incorrecte standaardpaginering uit te voeren die het weggooien van de regel zou produceren. - Meegedragen data. Overschrijft
getContext(), diepage_names(lijst van de distincte idents die de storing triggerden, in bronvolgorde),has_size_override(bool),has_rotate_override(bool) enhas_pseudo_classes(bool) teruggeeft. Dezelfde waarden zijn beschikbaar op de publieke propertiespageNames,hasSizeOverride,hasRotateOverrideenhasPseudoClasses. - Herstel. Verwijder de benoemde
@page <ident>-regels en eventuelepage: <ident>- bindings, en druk de bedoelde geometrie uit via de ondersteunde naamloze@page { … }-regel en zijn pseudo-class-vormen. Als alternatief, pin naar een toekomstige release die volledige named-page-lay-out-ondersteuning landt.
Typografie en tekstshaping
Sectie met titel “Typografie en tekstshaping”IcuRequirementException
Sectie met titel “IcuRequirementException”- Wanneer hij wordt opgeworpen. Tekstsegmentatie werpt deze op wanneer hij de
International Components for Unicode (ICU)-regelafbreek-iterator nodig heeft maar de
require-ICU-policy actief is (
NEXTPDF_REQUIRE_ICU=1) terwijl deext-intl- extensie enIntlBreakIteratorniet beschikbaar zijn. - Meegedragen data. Breidt
RuntimeExceptionrechtstreeks uit, dus is hij niet context-bewust en heeft hij geengetContext(). Het is een strikte verfijning van de generieke uitzondering die hetzelfde codepad voorheen opwierp, dus bestaandecatch (\RuntimeException)-handlers blijven werken. - Herstel. Installeer en schakel
ext-intlin zodat de ICU-break-iterator beschikbaar is, of unsetNEXTPDF_REQUIRE_ICUom terug te vallen op de niet-ICU- segmenter waar de require-ICU-policy niet verplicht is.
ScriptShaperException
Sectie met titel “ScriptShaperException”- Wanneer hij wordt opgeworpen. Dit is de basisuitzondering voor de script-shaping- service provider interface (SPI). Hij wordt vandaag niet rechtstreeks opgeworpen; concrete subtypes worden in plaats daarvan opgeworpen. Vang dit type op om elke shaping-storing op één plek af te handelen.
- Meegedragen data. Breidt
RuntimeExceptionrechtstreeks uit; niet context-bewust, geengetContext(). - Herstel. Vertak op het concrete subtype. Zie
NotYetImplementedExceptionhieronder voor het enige subtype dat in de huidige release wordt meegeleverd.
NotYetImplementedException
Sectie met titel “NotYetImplementedException”- Wanneer hij wordt opgeworpen. Elke placeholder-script-shaper werpt deze op vanuit zijn
shape()-body voor scripts waarvan de concrete shaping is uitgesteld (Mongools en Tibetaans). De shaping-SPI-naad is architectuur-klaar, maar echte shaping is in afwachting van een door een native speaker gevalideerde fixture. Een uitzondering opwerpen in plaats van een stille no-op brengt accidentele productiebedrading tijdens runtime aan de oppervlakte in plaats van ongeshapete tekst uit te voeren in een PDF die getagde toegankelijkheid claimt. - Meegedragen data. Breidt
ScriptShaperExceptionuit (en daarmeeRuntimeException), dus is hij niet context-bewust en heeft hij geengetContext(). De diagnostische data staat op zijnpublic readonlyproperties:bcp47LanguageTag(de BCP-47-tag van de run, zoalsmn-Mongofbo-Tibt) enmissingCapability(de concrete capability die de implementatie mist). Het bericht bevat beide. - Herstel. Route runs in de niet-geïmplementeerde scripts niet door de shaper in productie. Detecteer de taaltag stroomopwaarts en val ofwel terug op een ander rendering-pad of pin naar een toekomstige release die shaping landt voor het betrokken script.
Writer-uitvoerprofielen en versleuteling
Sectie met titel “Writer-uitvoerprofielen en versleuteling”Pdf14FeatureRejectedException
Sectie met titel “Pdf14FeatureRejectedException”- Wanneer hij wordt opgeworpen. De writer werpt deze op wanneer een document een feature bevat die verboden is onder het PDF 1.4-uitvoerprofiel (ISO 19005-1:2005 / PDF/A-1), dat constructs verbiedt die in latere PDF-versies werden geïntroduceerd.
- Meegedragen data. Breidt
NextPdfExceptionuit maar overschrijftgetContext()niet, dus geeftgetContext()een lege array terug. De diagnostische data staat op zijnpublic readonlyproperties:feature(de afgewezen feature-naam),reason(waarom hij verboden is) enisoClause(de ISO-clausuleverwijzing). Het bericht combineert alle drie. - Herstel. Verwijder of vervang de afgewezen feature door een PDF 1.4-compatibel equivalent, of richt je op een hoger uitvoerprofiel dat de feature toestaat.
Pdf20FeatureRejectedException
Sectie met titel “Pdf20FeatureRejectedException”- Wanneer hij wordt opgeworpen. De writer werpt deze op wanneer een document een feature bevat die verboden is onder het strikte PDF 2.0-uitvoerprofiel. ISO 32000-2:2020 deprecate’t constructs die PDF 1.7 nog toestond — met name de Standard 14 Type 1-lettertypen (§9.6.2), die moeten worden ingebed in een conform PDF 2.0-document.
- Meegedragen data. Zelfde vorm als
Pdf14FeatureRejectedException: breidtNextPdfExceptionuit, overschrijftgetContext()niet (geeft een lege array terug), en steltfeature,reasonenisoClausebeschikbaar alspublic readonlyproperties. - Herstel. Remedieer de afgewezen feature — bijvoorbeeld, embed de base 14-
lettertypen — of neem de gedocumenteerde escape hatch waar er een bestaat (voor niet-ingebedde
base 14-lettertypen,
Document::allowNonEmbeddedBase14()).
PublicKeyEncryptionUnsupportedException
Sectie met titel “PublicKeyEncryptionUnsupportedException”- Wanneer hij wordt opgeworpen.
PdfWriter::build()werpt deze op bij het toegangspunt wanneer deencryptionModevan het documentpubkeyis (een public-key-recipient- lijst) voordat de writer-side public-key-stream-body-versleutelingsdispatch is bedraad. Vooraf weigeren voorkomt dat stilletjes een onversleutelde PDF wordt uitgevoerd die de aanroeper dacht dat versleuteld was. - Meegedragen data. Breidt
RuntimeExceptionrechtstreeks uit, dus is hij niet context-bewust en heeft hij geengetContext(). Het is een strikte verfijning van de generieke uitzondering die dezelfde site voorheen opwierp, dus bestaandecatch (\RuntimeException)-handlers blijven werken. - Herstel. Gebruik een ondersteunde versleutelingsmodus (password-based encryption) in plaats van de public-key-recipient-lijst, of pin naar een release die public-key-versleutelingsondersteuning landt. Behandel de uitvoer niet als versleuteld wanneer dit wordt opgeworpen.
Reader- en metadata-invoer
Sectie met titel “Reader- en metadata-invoer”UnsupportedPdfStructureException
Sectie met titel “UnsupportedPdfStructureException”- Wanneer hij wordt opgeworpen. De object-graph-reader werpt deze op, fail-closed, wanneer
een invoer-PDF buiten zijn ondersteunde envelope valt. De reader ondersteunt klassieke
cross-reference-tabellen (ISO 32000-2:2020 §7.5.4), cross-reference streams
(§7.5.8), object-stream-gecomprimeerde objecten (§7.5.7), multi-revisie-
/Prev- ketens (§7.5.6), en hybrid-reference-bestanden via/XRefStm(§7.5.8.4). Alles buiten die envelope brengt deze uitzondering aan de oppervlakte in plaats van een gedeeltelijke of geraden parse. Benoemde constructors mappen naar de reden-cases:encrypted(),damagedCrossReference(),cyclicReferenceChain(),nonConformantObjectStream(),irresolvableObjectCollision(),truncatedFile(), encrossReferenceOffsetOutOfBounds(). - Meegedragen data. Breidt
RuntimeExceptionrechtstreeks uit, dus is hij niet context-bewust en heeft hij geengetContext(). Hij stelt eenpublic readonlyreason-property van typeUnsupportedPdfStructureReason(een enum) beschikbaar zodat aanroepers vertakken op de precieze categorie zonder het bericht te parsen; een optioneledetail-string en eenpreviousthrowable kunnen begrensde, niet-gevoelige context toevoegen. Het standaardbericht is de niet-lekkende samenvatting van de reden. - Herstel. Vertak op
reason. VoorEncryptedDocument, voer een decrypt-stap uit vóór het lezen, omdat ontsleuteling buiten de reikwijdte van de reader valt. VoorDamagedCrossReference,TruncatedFileofCrossReferenceOffsetOutOfBounds, behandel het bestand als misvormd of incompleet en heracquireer of repareer de bron. VoorCyclicReferenceChain,NonConformantObjectStreamofIrresolvableObjectCollision, schendt de invoer het structurele model en kan hij niet as-is worden gelezen.
PacketTooLargeException
Sectie met titel “PacketTooLargeException”- Wanneer hij wordt opgeworpen. De streaming-XMP-metadata-reader werpt deze op wanneer een ingebed XMP-pakket het geconfigureerde byte-plafond overschrijdt. Het is een defensieve guard tegen entity-expansion- en quadratic-blowup-achtige invoer (een 128 MB peak-plafond tegen XMP op gigabyte-schaal ingebed).
- Meegedragen data. Breidt
NextPdfExceptionuit maar overschrijftgetContext()niet, dus geeftgetContext()een lege array terug. De diagnostische data staat op zijnpublic readonlyproperties:byteCount(het waargenomen byte-aantal) encap(de geconfigureerde cap in bytes). Het bericht rapporteert beide. - Herstel. Wijs de te grote metadata af of sla hem over als kwaadaardig of misvormd. Als een legitiem document daadwerkelijk een groter pakket nodig heeft, verhoog de geconfigureerde cap opzettelijk, en weeg het geheugenuitputtingsrisico af dat de guard bestaat om te voorkomen.
Zie ook
Sectie met titel “Zie ook”- Foutreferentie-index
- Probleemoplossing voor lettertypen en tagging — voor
NotYetImplementedException-,ScriptShaperException- enIcuRequirementException-symptomen. - Probleemoplossing voor PDF/A- en PDF/UA-validatie — voor
Pdf14FeatureRejectedException- enPdf20FeatureRejectedException-symptomen. - Probleemoplossing voor versleuteling en machtigingen — voor
PublicKeyEncryptionUnsupportedExceptionen deEncryptedDocument-reden van de reader.