Przejdź do głównej zawartości
getnextpdf.com

Enterprise edycja

Document E-Filing — szczegółowa referencja

  • EFilingOptimizer przygotowuje plik PDF do elektronicznego składania sądowego w jednym przebiegu o ustalonej kolejności: sanityzacja, linearyzacja, podział według rozmiaru.
  • EFilingProfile koduje ograniczenia jurysdykcji. Wbudowane fabryki obejmują US PACER, EU e-Justice oraz Taiwan Judicial Yuan.
  • SizeAwareSplitter egzekwuje limit bajtów na segment z ponownym podziałem w trybie sprawdź-a-następnie-popraw.
  • Wynik jest artefaktem dostarczanym. Nie może ponownie wejść do potoków podpisywania ani archiwizacji.
  • Moduł nie wykonuje żadnych operacji kryptograficznych ani nie wykonuje wychodzących wywołań sieciowych.

Ta funkcjonalność jest dostarczana w NextPDF Enterprise (nextpdf/enterprise) i aktywuje się wraz z kopertą licencyjną poziomu Enterprise. Wdrożenie bez tego uprawnienia nie ładuje klas tej funkcjonalności. Porównaj edycje i uzyskaj licencję.

Granica pakietu nextpdf/enterprise obejmuje tę powierzchnię bramą; nie ma osobnego kodu funkcjonalności dla poszczególnych funkcji. Żadna edycja Core ani Pro nie udostępnia optymalizatora składania elektronicznego.

Okno terminala
composer require nextpdf/enterprise:^3
SymbolParametryZachowanie domyślneZwracaZgłasza lub kończy się błędemUwagi
EFilingOptimizer::optimize()string $pdfData, ?EFilingProfile $profile = nullProfil domyślnie EFilingProfile::pacer(); uruchamia sanityzację, linearyzację, podział według rozmiaru w ustalonej kolejnościEFilingResultInvalidArgumentException z kroku podziału, gdy wejście przekraczające limit nie jest prawidłowym plikiem PDF; niepowodzenia sanityzacji i linearyzacji degradują się do ostrzeżeńWynik jest artefaktem dostarczanym
EFilingProfile::__construct()$name, $maxFileSizeBytes = 26_214_400, $flattenForms = true, $removeJavaScript = true, $imageQuality = 75, $linearize = true, $compressObjectStreams = trueNiemutowalny profil jurysdykcjiEFilingProfileNie zgłasza wyjątkówWłasne limity dla portali bez wbudowanej fabryki
EFilingProfile::pacer()brakLimit 25 MiB, jakość obrazu 75EFilingProfileNie zgłasza wyjątkówUS PACER
EFilingProfile::euJustice()brakLimit 10 MiB, jakość obrazu 70EFilingProfileNie zgłasza wyjątkówEU e-Justice Portal
EFilingProfile::taiwan()brakLimit 10 MiB, jakość obrazu 70EFilingProfileNie zgłasza wyjątkówTaiwan Judicial Yuan
SizeAwareSplitter::splitByMaxSize()string $pdfData, int $maxBytesPojedynczy segment, gdy wejście się mieści; w przeciwnym razie oszacuj, sprawdź, podziel ponownielist<EFilingSegment>InvalidArgumentException, gdy wejście przekraczające limit nie ma nagłówka %PDFWejście poniżej limitu jest zwracane jako jeden segment bez walidacji
EFilingResult::isSplit()braktrue, gdy istnieje więcej niż jeden segmentboolNie zgłasza wyjątków
EFilingResult::segmentCount()brakŁączna liczba segmentówintNie zgłasza wyjątków
EFilingResult::compressionRatio()brakoptimizedTotalSize / originalSizefloatNie zgłasza wyjątków; 0.0 dla pustego wejścia pierwotnegoMniej znaczy lepiej
EFilingSegment$pdfData, $pageRange, $sizeBytes, $segmentIndexNiemutowalny segment wyjściowyobiekt wartościNie zgłasza wyjątkówCiąg zakresu stron, taki jak 1-25 lub 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() uruchamia względem wejściowych bajtów potok o ustalonej kolejności. Krok pierwszy usuwa aktywną treść, gdy ustawiono removeJavaScript. Deleguje do silnika content-disarm-and-reconstruction z polityką właściwą dla składania: JavaScript, nazwany JavaScript, akcje launch, wysyłanie formularzy oraz akcje importu danych są usuwane; akcje URI są zachowywane (allowUriActions), ponieważ dokumenty składane mogą nieść prawidłowe odnośniki; aktualizacje przyrostowe są spłaszczane do jednej rewizji (flattenIncrementalUpdates). Krok drugi linearyzuje zsanityzowane bajty przez należący do Core NextPDF\Writer\Linearizer, gdy ustawiono linearize. Krok trzeci egzekwuje maxFileSizeBytes profilu przez SizeAwareSplitter.

Splitter szacuje liczbę stron na segment na podstawie średniego rozmiaru strony, dzieli, a następnie sprawdza każdy wytworzony segment względem limitu. Każdy segment przekraczający limit, który wciąż obejmuje więcej niż jedną stronę, jest dzielony ponownie rekurencyjnie, za każdym przebiegiem połowiąc własny zakres stron, aż każdy element potomny się zmieści lub będzie pojedynczą stroną. Ograniczona głębokość ponownego podziału chroni przed patologicznym brakiem zbieżności. Indeksy wyjściowe są ponownie normalizowane, aby pozostały ciągłe i liczone od zera.

optimize() wykorzystuje trzy pola profilu: maxFileSizeBytes, removeJavaScript oraz linearize. Pola flattenForms, imageQuality oraz compressObjectStreams są zadeklarowanymi ograniczeniami profilu, na które optimize() nie reaguje w 3.1.0.

Wynik składania elektronicznego jest artefaktem dostarczanym, a nie stanem cyklu życia dokumentu. Zoptymalizowany lub podzielony plik PDF jest ostateczny na potrzeby transmisji i nie może ponownie wejść do potoku podpisywania ani archiwizacji; ponowne przetworzenie zerwałoby łańcuchy skrótów oraz integralność dowodową.

Ten moduł przygotowuje formaty na potrzeby składania w e-sądzie / urzędach państwowych zgodnie z konfiguracją. Nie gwarantuje przyjęcia przez jakikolwiek sąd, rejestr, trybunał ani portal składania. Wbudowane limity profili kodują dla wygody powszechnie publikowane ograniczenia, a nie strumień aktualnych danych z każdego portalu; zasady portali różnią się w zależności od jurysdykcji i ulegają zmianom. Sprawdzenie ich względem aktualnych zasad rejestru docelowego jest obowiązkiem składającego.

Przetwarzanie odbywa się w obrębie procesu i lokalnie. Transport do sądu, rejestru lub portalu składania jest zewnętrzny względem tego modułu.

  • Wejście na poziomie limitu lub poniżej: jeden segment z zakresem stron all; krok podziału pozostawia bajty niezmienione.
  • Odrzucenie sanityzacji (na przykład wejście, którego nie da się sparsować): zapisywane jest ostrzeżenie CDR sanitization rejected: <reason>, a potok kontynuuje z pierwotnymi bajtami.
  • Przebieg sanityzacji bez wykrytych zagrożeń: bajty i tak są zastępowane przez odbudowany plik PDF, a wpis optymalizacji odnotowuje czysty przebieg.
  • Niepowodzenie linearyzacji: zapisywane jest ostrzeżenie Linearization skipped: <message>, a potok kontynuuje z niezlinearyzowanymi bajtami.
  • Pojedyncza strona przekraczająca limit: faktycznie niepodzielna, zwracana bez zmian jako jeden segment przekraczający limit. W tym przypadku nie zapisuje się ostrzeżenia; porównaj sizeBytes każdego segmentu z limitem profilu przed złożeniem.
  • Osiągnięto limit głębokości ponownego podziału: segment przekraczający limit przechodzi bez zmian zamiast wpadać w pętlę.
  • compressionRatio() zwraca 0.0, gdy wejście pierwotne jest puste.
  • Moduł nie wykonuje żadnych operacji kryptograficznych; tryb FIPS nie ma zastosowania.
ZachowanieOdniesienieStatus
Organizacja wyjścia zlinearyzowanego (dane pierwszej strony na początku pliku)ISO 32000-2:2020 Annex F / Annex GZbudowane względem
Semantyka relacji pliku powiązanegoISO 19005-3:2012 §6.7.8Honorowane tam, gdzie mają zastosowanie nośniki
Wymagania nośnika pliku osadzonegoISO 19005-4:2020 Annex AHonorowane tam, gdzie mają zastosowanie nośniki

Linearyzacja celuje w organizację Linearized PDF, która umieszcza wszystkie dane wymagane do wyświetlenia pierwszej strony na początku pliku, dla wydajnego dostępu przyrostowego.

Te wiersze opisują funkcjonalność zbudowaną względem cytowanych klauzul. Wsparcie nie jest zgodnością, a zgodność nie jest certyfikacją; NextPDF nie posiada żadnej certyfikacji. Żadne stwierdzenie na tej stronie nie gwarantuje przyjęcia przez jakikolwiek portal składania.

Ta strona jest oznaczona export_control_class: legal-review-required. NextPDF nie udziela porad prawnych. Zasady składania różnią się w zależności od jurysdykcji i ulegają zmianom; ich spełnienie jest obowiązkiem składającego. Skonsultuj się z doradcą prawnym oraz aktualnymi wytycznymi rejestru docelowego.

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.
}
  • Sprawdź $result->warnings przed złożeniem. Odrzucona sanityzacja lub pominięta linearyzacja pojawia się tam, a nie jako wyjątek.
  • Najpierw podpisz i zarchiwizuj dokument źródłowy; następnie zoptymalizuj kopię do dostarczenia. Nigdy nie podpisuj ponownie, nie stempluj ponownie ani nie archiwizuj zoptymalizowanego segmentu.
  • Zweryfikuj sizeBytes każdego segmentu względem limitu profilu. Niepodzielna strona przekraczająca limit trafia na wyjście po cichu.
  • Dla portali bez wbudowanej fabryki skonstruuj własny EFilingProfile z opublikowanym limitem portalu.

Ta strona dokumentuje wyłącznie zewnętrznie obserwowalne zachowanie oraz wspieraną powierzchnię publicznego API. Wewnętrzne ścieżki przestrzeni nazw, klasy pomocnicze, tabele mechanizmów, nazwy plików runbooków oraz prefiksy zgłoszeń są poza zakresem.