Zum Inhalt springen
getnextpdf.com

Enterprise Edition

Document E-Filing — Ausführliche Referenz

  • EFilingOptimizer bereitet ein PDF in einem Durchlauf mit fester Reihenfolge für die elektronische Gerichtseinreichung auf: bereinigen, linearisieren, größenbasiert aufteilen.
  • EFilingProfile kodiert Jurisdiktions-Einschränkungen. Eingebaute Factories decken US PACER, EU e-Justice und Taiwan Judicial Yuan ab.
  • SizeAwareSplitter erzwingt eine Byte-Obergrenze pro Segment mit Prüfen-dann-Korrigieren-Neuaufteilung.
  • Die Ausgabe ist ein Zustellartefakt. Es darf keine Signier- oder Archivierungspipeline erneut durchlaufen.
  • Das Modul führt keine kryptografischen Operationen durch und stellt keine ausgehenden Netzwerkaufrufe her.

Diese Fähigkeit wird mit NextPDF Enterprise (nextpdf/enterprise) ausgeliefert und aktiviert sich mit einem Lizenz-Envelope der Enterprise-Stufe. Ein Deployment ohne diese Berechtigung lädt die Klassen der Fähigkeit nicht. Editionen vergleichen und Lizenz erwerben.

Die Paketgrenze von nextpdf/enterprise schränkt den Zugang zu dieser Oberfläche ein; es gibt keinen separaten funktionsbezogenen Fähigkeitscode. Keine Core- oder Pro-Edition stellt einen E-Filing-Optimierer bereit.

Terminal-Fenster
composer require nextpdf/enterprise:^3
SymbolParameterStandardverhaltenRückgabeWirft oder scheitert mitHinweise
EFilingOptimizer::optimize()string $pdfData, ?EFilingProfile $profile = nullProfil fällt standardmäßig auf EFilingProfile::pacer() zurück; führt Bereinigung, Linearisierung, größenbasierte Aufteilung in fester Reihenfolge ausEFilingResultInvalidArgumentException aus dem Aufteilungsschritt, wenn eine über dem Limit liegende Eingabe kein gültiges PDF ist; Fehler bei Bereinigung und Linearisierung werden zu Warnungen abgestuftAusgabe ist ein Zustellartefakt
EFilingProfile::__construct()$name, $maxFileSizeBytes = 26_214_400, $flattenForms = true, $removeJavaScript = true, $imageQuality = 75, $linearize = true, $compressObjectStreams = trueUnveränderliches JurisdiktionsprofilEFilingProfileWirft nichtBenutzerdefinierte Obergrenzen für Portale ohne eingebaute Factory
EFilingProfile::pacer()keine25-MiB-Obergrenze, Bildqualität 75EFilingProfileWirft nichtUS PACER
EFilingProfile::euJustice()keine10-MiB-Obergrenze, Bildqualität 70EFilingProfileWirft nichtEU e-Justice Portal
EFilingProfile::taiwan()keine10-MiB-Obergrenze, Bildqualität 70EFilingProfileWirft nichtTaiwan Judicial Yuan
SizeAwareSplitter::splitByMaxSize()string $pdfData, int $maxBytesEinzelnes Segment, wenn die Eingabe passt; andernfalls schätzen, prüfen, neu aufteilenlist<EFilingSegment>InvalidArgumentException, wenn einer über dem Limit liegenden Eingabe ein %PDF-Header fehltEine Eingabe unter dem Limit wird ohne Validierung als ein Segment zurückgegeben
EFilingResult::isSplit()keinetrue, wenn mehr als ein Segment vorhanden istboolWirft nicht
EFilingResult::segmentCount()keineGesamtzahl der SegmenteintWirft nicht
EFilingResult::compressionRatio()keineoptimizedTotalSize / originalSizefloatWirft nicht; 0.0 bei leerer UrsprungseingabeNiedriger ist besser
EFilingSegment$pdfData, $pageRange, $sizeBytes, $segmentIndexUnveränderliches AusgabesegmentWertobjektWirft nichtSeitenbereichs-Zeichenkette wie 1-25 oder all
public function optimize(string $pdfData, ?EFilingProfile $profile = null): EFilingResult
public 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(): self
public static function euJustice(): self
public static function taiwan(): self
public function splitByMaxSize(string $pdfData, int $maxBytes): array
public function __construct(
public array $segments,
public int $originalSize,
public int $optimizedTotalSize,
public array $optimizations = [],
public array $warnings = [],
) {}
public function isSplit(): bool
public function segmentCount(): int
public function compressionRatio(): float

EFilingOptimizer::optimize() führt eine Pipeline mit fester Reihenfolge gegen die Eingabebytes aus. Schritt eins entfernt aktive Inhalte, wenn removeJavaScript gesetzt ist. Er delegiert an die Content-Disarm-and-Reconstruction-Engine mit einer einreichungsspezifischen Richtlinie: JavaScript, benanntes JavaScript, Launch-Aktionen, Formularübermittlung und Datenimport-Aktionen werden entfernt; URI-Aktionen bleiben erhalten (allowUriActions), da Einreichungen legitime Links enthalten können; inkrementelle Aktualisierungen werden in eine Revision zusammengeführt (flattenIncrementalUpdates). Schritt zwei linearisiert die bereinigten Bytes über den Core-NextPDF\Writer\Linearizer, wenn linearize gesetzt ist. Schritt drei erzwingt das maxFileSizeBytes des Profils über SizeAwareSplitter.

Der Splitter schätzt die Seiten pro Segment aus der durchschnittlichen Seitengröße, teilt auf und prüft anschließend jedes erzeugte Segment gegen das Limit. Jedes über dem Limit liegende Segment, das noch mehr als eine Seite umfasst, wird rekursiv neu aufgeteilt, wobei sein eigener Seitenumfang mit jedem Durchlauf halbiert wird, bis jedes Kind passt oder eine einzelne Seite ist. Eine begrenzte Neuaufteilungstiefe schützt vor pathologischer Nicht-Konvergenz. Die Ausgabeindizes werden neu normalisiert, damit sie zusammenhängend und nullbasiert bleiben.

optimize() verbraucht drei Profilfelder: maxFileSizeBytes, removeJavaScript und linearize. Die Felder flattenForms, imageQuality und compressObjectStreams sind deklarierte Profil-Einschränkungen, auf die optimize() in 3.1.0 nicht reagiert.

Die E-Filing-Ausgabe ist ein Zustellartefakt, kein Zustand im Dokumentlebenszyklus. Ein optimiertes oder aufgeteiltes PDF ist endgültig für die Übermittlung und darf keine Signier- oder Archivierungspipeline erneut durchlaufen; eine erneute Verarbeitung würde Hash-Ketten und die beweistechnische Integrität brechen.

Dieses Modul bereitet Formate für die elektronische Einreichung bei Gericht / Behörden gemäß Konfiguration auf. Es garantiert keine Annahme durch ein Gericht, Register, Tribunal oder Einreichungsportal. Die eingebauten Profil-Obergrenzen kodieren der Bequemlichkeit halber häufig veröffentlichte Einschränkungen, keinen Live-Feed der einzelnen Portale; Portalregeln variieren je nach Jurisdiktion und ändern sich. Ihre Überprüfung anhand der aktuellen Regeln des Zielregisters liegt in der Verantwortung des Einreichenden.

Die Verarbeitung erfolgt in-process und lokal. Der Transport zu einem Gericht, Register oder Einreichungsportal liegt außerhalb dieses Moduls.

  • Eingabe auf oder unter dem Limit: ein Segment mit Seitenbereich all; der Aufteilungsschritt lässt die Bytes unverändert.
  • Bereinigungsablehnung (zum Beispiel eine nicht parsbare Eingabe): die Warnung CDR sanitization rejected: <reason> wird erfasst und die Pipeline fährt mit den ursprünglichen Bytes fort.
  • Bereinigungsdurchlauf ohne gefundene Bedrohungen: die Bytes werden dennoch durch das neu aufgebaute PDF ersetzt, und ein Optimierungseintrag hält den sauberen Durchlauf fest.
  • Linearisierungsfehler: die Warnung Linearization skipped: <message> wird erfasst und die Pipeline fährt mit nicht linearisierten Bytes fort.
  • Einzelne Seite über dem Limit: tatsächlich unteilbar, wird unverändert als ein über dem Limit liegendes Segment zurückgegeben. Für diesen Fall wird keine Warnung erfasst; vergleichen Sie das sizeBytes jedes Segments vor der Einreichung mit der Profil-Obergrenze.
  • Obergrenze der Neuaufteilungstiefe erreicht: das über dem Limit liegende Segment wird unverändert durchgereicht, statt in eine Schleife zu geraten.
  • compressionRatio() gibt 0.0 zurück, wenn die Ursprungseingabe leer ist.
  • Das Modul führt keine kryptografischen Operationen durch; der FIPS-Modus ist nicht anwendbar.
VerhaltenReferenzStatus
Organisation der linearisierten Ausgabe (Daten der ersten Seite am Dateianfang)ISO 32000-2:2020 Annex F / Annex GEntwickelt gegen
Beziehungssemantik der zugeordneten DateiISO 19005-3:2012 §6.7.8Eingehalten, wo Carrier zutreffen
Anforderungen an den Einbettungs-CarrierISO 19005-4:2020 Annex AEingehalten, wo Carrier zutreffen

Die Linearisierung zielt auf die Organisation eines linearisierten PDF ab, die alle zur Anzeige der ersten Seite erforderlichen Daten an den Dateianfang platziert, um effizienten inkrementellen Zugriff zu ermöglichen.

Diese Zeilen beschreiben eine Fähigkeit, die gegen die zitierten Klauseln entwickelt wurde. Unterstützung ist keine Konformität, und Konformität ist keine Zertifizierung; NextPDF hält keine Zertifizierung. Keine Aussage auf dieser Seite garantiert die Annahme durch ein Einreichungsportal.

Diese Seite ist mit export_control_class: legal-review-required gekennzeichnet. NextPDF bietet keine Rechtsberatung. Einreichungsregeln variieren je nach Jurisdiktion und ändern sich; ihre Einhaltung liegt in der Verantwortung des Einreichenden. Konsultieren Sie einen Rechtsbeistand und die aktuellen Vorgaben des Zielregisters.

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.
}
  • Prüfen Sie $result->warnings vor der Einreichung. Eine abgelehnte Bereinigung oder eine übersprungene Linearisierung erscheint dort, nicht als Ausnahme.
  • Signieren und archivieren Sie zuerst das Ausgangsdokument; optimieren Sie dann eine Kopie für die Zustellung. Signieren, stempeln oder archivieren Sie niemals ein optimiertes Segment erneut.
  • Prüfen Sie das sizeBytes jedes Segments gegen die Profil-Obergrenze. Eine unteilbare, über dem Limit liegende Seite erreicht die Ausgabe stillschweigend.
  • Konstruieren Sie für Portale ohne eingebaute Factory ein benutzerdefiniertes EFilingProfile mit der veröffentlichten Obergrenze des Portals.

Diese Seite dokumentiert ausschließlich extern beobachtbares Verhalten und die unterstützte öffentliche API-Oberfläche. Interne Namespace-Pfade, Hilfsklassen, Mechanismustabellen, Runbook-Dateinamen und Ticket-Präfixe liegen außerhalb des Geltungsbereichs.