Enterprise editie
Document E-Filing — Diepe referentie
In een oogopslag
Sectie met titel “In een oogopslag”EFilingOptimizerbereidt een PDF voor op elektronische indiening bij de rechtbank in één doorloop met vaste volgorde: sanitize, linearize, size-split.EFilingProfilecodeert jurisdictiebeperkingen. Ingebouwde fabrieken dekken US PACER, EU e-Justice en Taiwan Judicial Yuan.SizeAwareSplitterhandhaaft een bytelimiet per segment met verify-then-correct-hersplitsen.- De uitvoer is een leveringsartefact. Het mag geen ondertekenings- of archiveringspijplijnen opnieuw binnenkomen.
- De module voert geen cryptografische bewerkingen uit en doet geen uitgaande netwerkaanroepen.
Beschikbaarheid en licenties
Sectie met titel “Beschikbaarheid en licenties”Deze capaciteit wordt geleverd in NextPDF Enterprise (nextpdf/enterprise) en wordt geactiveerd met een licentie-envelop van het Enterprise-niveau. Een deployment zonder dat recht laadt de klassen van de capaciteit niet. Vergelijk edities en vraag een licentie aan.
De pakketgrens van nextpdf/enterprise schermt dit oppervlak af; er is geen afzonderlijke capaciteitscode per functie. Geen enkele Core- of Pro-editie biedt een e-filing-optimizer.
Publiek API-oppervlak
Sectie met titel “Publiek API-oppervlak”composer require nextpdf/enterprise:^3| Symbool | Parameters | Standaardgedrag | Retourneert | Werpt of faalt met | Opmerkingen |
|---|---|---|---|---|---|
EFilingOptimizer::optimize() | string $pdfData, ?EFilingProfile $profile = null | Profiel valt standaard terug op EFilingProfile::pacer(); voert sanitize, linearize, size-split uit in vaste volgorde | EFilingResult | InvalidArgumentException vanuit de split-stap wanneer een invoer boven de limiet geen geldige PDF is; sanitisatie- en linearisatiefouten degraderen tot waarschuwingen | De uitvoer is een leveringsartefact |
EFilingProfile::__construct() | $name, $maxFileSizeBytes = 26_214_400, $flattenForms = true, $removeJavaScript = true, $imageQuality = 75, $linearize = true, $compressObjectStreams = true | Onveranderlijk jurisdictieprofiel | EFilingProfile | Werpt niet | Aangepaste limieten voor portalen zonder ingebouwde fabriek |
EFilingProfile::pacer() | geen | 25 MiB-limiet, beeldkwaliteit 75 | EFilingProfile | Werpt niet | US PACER |
EFilingProfile::euJustice() | geen | 10 MiB-limiet, beeldkwaliteit 70 | EFilingProfile | Werpt niet | EU e-Justice Portal |
EFilingProfile::taiwan() | geen | 10 MiB-limiet, beeldkwaliteit 70 | EFilingProfile | Werpt niet | Taiwan Judicial Yuan |
SizeAwareSplitter::splitByMaxSize() | string $pdfData, int $maxBytes | Eén segment wanneer de invoer past; anders schatten, verifiëren, hersplitsen | list<EFilingSegment> | InvalidArgumentException wanneer een invoer boven de limiet een %PDF-header mist | Invoer onder de limiet wordt als één segment geretourneerd zonder validatie |
EFilingResult::isSplit() | geen | true wanneer er meer dan één segment bestaat | bool | Werpt niet | — |
EFilingResult::segmentCount() | geen | Totaal aantal segmenten | int | Werpt niet | — |
EFilingResult::compressionRatio() | geen | optimizedTotalSize / originalSize | float | Werpt niet; 0.0 voor lege oorspronkelijke invoer | Lager is beter |
EFilingSegment | $pdfData, $pageRange, $sizeBytes, $segmentIndex | Onveranderlijk uitvoersegment | waardeobject | Werpt niet | Paginabereikstring zoals 1-25 of all |
public function optimize(string $pdfData, ?EFilingProfile $profile = null): EFilingResultpublic function __construct( public string $name, public int $maxFileSizeBytes = 26_214_400, public bool $flattenForms = true, public bool $removeJavaScript = true, public int $imageQuality = 75, public bool $linearize = true, public bool $compressObjectStreams = true,) {}
public static function pacer(): selfpublic static function euJustice(): selfpublic static function taiwan(): selfpublic function splitByMaxSize(string $pdfData, int $maxBytes): arraypublic function __construct( public array $segments, public int $originalSize, public int $optimizedTotalSize, public array $optimizations = [], public array $warnings = [],) {}
public function isSplit(): boolpublic function segmentCount(): intpublic function compressionRatio(): floatGedragscontract
Sectie met titel “Gedragscontract”EFilingOptimizer::optimize() voert een pijplijn met vaste volgorde uit op de invoerbytes. Stap één verwijdert actieve inhoud wanneer removeJavaScript is ingesteld. Het delegeert naar de content-disarm-and-reconstruction-engine met een indieningsspecifiek beleid: JavaScript, benoemd JavaScript, launch-acties, formulierverzending en data-importacties worden verwijderd; URI-acties blijven behouden (allowUriActions) omdat indieningen legitieme links kunnen bevatten; incrementele updates worden afgevlakt tot één revisie (flattenIncrementalUpdates). Stap twee lineariseert de gesaneerde bytes via de Core NextPDF\Writer\Linearizer wanneer linearize is ingesteld. Stap drie handhaaft de maxFileSizeBytes van het profiel via SizeAwareSplitter.
De splitter schat het aantal pagina’s per segment op basis van de gemiddelde paginagrootte, splitst, en verifieert daarna elk geproduceerd segment ten opzichte van de limiet. Elk segment boven de limiet dat nog meer dan één pagina beslaat, wordt recursief hersplitst, waarbij zijn eigen paginabereik bij elke doorloop wordt gehalveerd, totdat elk kind past of één enkele pagina is. Een begrensde hersplitsdiepte beschermt tegen pathologische non-convergentie. De uitvoerindices worden opnieuw genormaliseerd om aaneengesloten en nul-gebaseerd te blijven.
optimize() gebruikt drie profielvelden: maxFileSizeBytes, removeJavaScript en linearize. De velden flattenForms, imageQuality en compressObjectStreams zijn gedeclareerde profielbeperkingen waar optimize() in 3.1.0 niet op reageert.
E-filing-uitvoer is een leveringsartefact, geen documentlevenscyclusstatus. Een geoptimaliseerde of gesplitste PDF is definitief voor transmissie en mag geen ondertekenings- of archiveringspijplijn opnieuw binnenkomen; herverwerking zou hash-ketens en de bewijskracht van integriteit verbreken.
Deze module bereidt formaten voor e-court / overheidsindiening voor zoals geconfigureerd. Het garandeert geen acceptatie door enige rechtbank, registratie-instantie, tribunaal of indieningsportaal. De ingebouwde profiellimieten coderen veelgepubliceerde beperkingen als gemak, geen live feed van elk portaal; portaalregels variëren per jurisdictie en veranderen. Het verifiëren ervan ten opzichte van de actuele regels van de doelregistratie-instantie is de verantwoordelijkheid van de indiener.
De verwerking is in-process en lokaal. Transport naar een rechtbank, registratie-instantie of indieningsportaal valt buiten deze module.
Randgevallen en foutmodi
Sectie met titel “Randgevallen en foutmodi”- Invoer op of onder de limiet: één segment met paginabereik
all; de split-stap laat de bytes ongewijzigd. - Sanitisatie-afwijzing (bijvoorbeeld een niet-parseerbare invoer): de waarschuwing
CDR sanitization rejected: <reason>wordt vastgelegd en de pijplijn gaat verder met de oorspronkelijke bytes. - Sanitisatiedoorloop zonder gevonden bedreigingen: de bytes worden alsnog vervangen door de herbouwde PDF, en een optimalisatie-item legt de schone doorloop vast.
- Linearisatiefout: de waarschuwing
Linearization skipped: <message>wordt vastgelegd en de pijplijn gaat verder met ongelineariseerde bytes. - Enkele pagina boven de limiet: werkelijk ondeelbaar, ongewijzigd geretourneerd als één segment boven de limiet. Voor dit geval wordt geen waarschuwing vastgelegd; vergelijk de
sizeBytesvan elk segment met de profiellimiet vóór het indienen. - Hersplitsdieptelimiet bereikt: het segment boven de limiet passeert ongewijzigd in plaats van te blijven lussen.
compressionRatio()retourneert0.0wanneer de oorspronkelijke invoer leeg is.- De module voert geen cryptografische bewerkingen uit; de FIPS-modus is niet van toepassing.
Conformiteit
Sectie met titel “Conformiteit”| Gedrag | Referentie | Status |
|---|---|---|
| Gelineariseerde uitvoerorganisatie (eerste-paginadata aan het begin van het bestand) | ISO 32000-2:2020 Annex F / Annex G | Gebouwd ten opzichte van |
| Semantiek van de associated-file-relatie | ISO 19005-3:2012 §6.7.8 | Gehonoreerd waar carriers van toepassing zijn |
| Vereisten voor de embedded-file-carrier | ISO 19005-4:2020 Annex A | Gehonoreerd waar carriers van toepassing zijn |
Linearisatie richt zich op de Linearized PDF-organisatie, die alle data die nodig is om de eerste pagina weer te geven aan het begin van het bestand plaatst voor efficiënte incrementele toegang.
Deze rijen beschrijven capaciteit die is gebouwd ten opzichte van de geciteerde clausules. Ondersteuning is geen conformiteit, en conformiteit is geen certificering; NextPDF beschikt over geen enkele certificering. Geen enkele uitspraak op deze pagina garandeert acceptatie door enig indieningsportaal.
Deze pagina draagt export_control_class: legal-review-required. NextPDF biedt geen juridisch advies. Indieningsregels variëren per jurisdictie en veranderen; het voldoen eraan is de verantwoordelijkheid van de indiener. Raadpleeg een raadsman en de actuele richtlijnen van de doelregistratie-instantie.
Ontwikkelnotities
Sectie met titel “Ontwikkelnotities”use NextPDF\Enterprise\Document\EFiling\EFilingOptimizer;use NextPDF\Enterprise\Document\EFiling\EFilingProfile;
$optimizer = new EFilingOptimizer();$result = $optimizer->optimize($pdfBytes, EFilingProfile::euJustice());
foreach ($result->segments as $segment) { // Persist $segment->pdfData; confirm $segment->sizeBytes fits the cap.}- Inspecteer
$result->warningsvóór het indienen. Een afgewezen sanitisatie of overgeslagen linearisatie verschijnt daar, niet als een uitzondering. - Onderteken en archiveer eerst het brondocument; optimaliseer daarna een kopie voor levering. Onderteken, herstempel of archiveer een geoptimaliseerd segment nooit opnieuw.
- Verifieer de
sizeBytesvan elk segment ten opzichte van de profiellimiet. Een ondeelbare pagina boven de limiet bereikt de uitvoer stilzwijgend. - Construeer voor portalen zonder ingebouwde fabriek een aangepast
EFilingProfilemet de gepubliceerde limiet van het portaal.
Publicatiegrens
Sectie met titel “Publicatiegrens”Deze pagina documenteert alleen extern waarneembaar gedrag en het ondersteunde publieke API-oppervlak. Interne namespace-paden, helperklassen, mechanismetabellen, runbook-bestandsnamen en ticketprefixen vallen buiten de scope.