Bỏ qua để đến nội dung
getnextpdf.com

Enterprise phiên bản

Document E-Filing — Tài liệu tham chiếu chuyên sâu

  • EFilingOptimizer chuẩn bị một PDF để nộp hồ sơ tòa án điện tử trong một lượt theo thứ tự cố định: sanitize, linearize, tách theo kích thước.
  • EFilingProfile mã hóa các ràng buộc theo khu vực pháp lý. Các factory tích hợp bao phủ US PACER, EU e-Justice, và Taiwan Judicial Yuan.
  • SizeAwareSplitter thực thi một giới hạn byte cho mỗi đoạn với cơ chế tách lại kiểm-tra-rồi-sửa.
  • Đầu ra là một artifact phân phối. Nó không được tái nhập vào các quy trình ký hay lưu trữ.
  • Module này không thực hiện thao tác mật mã nào và không thực hiện lệnh gọi mạng ra ngoài.

Khả năng này đi kèm trong NextPDF Enterprise (nextpdf/enterprise) và được kích hoạt bằng một license envelope hạng Enterprise. Một triển khai không có quyền đó sẽ không nạp các lớp của khả năng này. So sánh các phiên bản và lấy giấy phép.

Ranh giới gói nextpdf/enterprise kiểm soát bề mặt này; không có mã capability riêng theo từng tính năng. Không có phiên bản Core hay Pro nào cung cấp trình tối ưu nộp hồ sơ điện tử.

Terminal window
composer require nextpdf/enterprise:^3
Ký hiệuTham sốHành vi mặc địnhTrả vềNém lỗi hoặc thất bại vớiGhi chú
EFilingOptimizer::optimize()string $pdfData, ?EFilingProfile $profile = nullProfile mặc định là EFilingProfile::pacer(); chạy sanitize, linearize, tách theo kích thước theo thứ tự cố địnhEFilingResultInvalidArgumentException từ bước tách khi đầu vào vượt giới hạn không phải PDF hợp lệ; lỗi sanitization và linearization giáng cấp thành cảnh báoĐầu ra là một artifact phân phối
EFilingProfile::__construct()$name, $maxFileSizeBytes = 26_214_400, $flattenForms = true, $removeJavaScript = true, $imageQuality = 75, $linearize = true, $compressObjectStreams = trueProfile khu vực pháp lý bất biếnEFilingProfileKhông ném lỗiGiới hạn tùy chỉnh cho các cổng không có factory tích hợp
EFilingProfile::pacer()khônggiới hạn 25 MiB, chất lượng ảnh 75EFilingProfileKhông ném lỗiUS PACER
EFilingProfile::euJustice()khônggiới hạn 10 MiB, chất lượng ảnh 70EFilingProfileKhông ném lỗiCổng EU e-Justice
EFilingProfile::taiwan()khônggiới hạn 10 MiB, chất lượng ảnh 70EFilingProfileKhông ném lỗiTaiwan Judicial Yuan
SizeAwareSplitter::splitByMaxSize()string $pdfData, int $maxBytesMột đoạn đơn khi đầu vào vừa; nếu không thì ước lượng, kiểm tra, tách lạilist<EFilingSegment>InvalidArgumentException khi đầu vào vượt giới hạn thiếu tiêu đề %PDFĐầu vào dưới giới hạn trả về như một đoạn mà không kiểm tra
EFilingResult::isSplit()khôngtrue khi tồn tại nhiều hơn một đoạnboolKhông ném lỗi
EFilingResult::segmentCount()khôngTổng số đoạnintKhông ném lỗi
EFilingResult::compressionRatio()khôngoptimizedTotalSize / originalSizefloatKhông ném lỗi; 0.0 cho đầu vào gốc rỗngCàng thấp càng tốt
EFilingSegment$pdfData, $pageRange, $sizeBytes, $segmentIndexĐoạn đầu ra bất biếnvalue objectKhông ném lỗiChuỗi phạm vi trang như 1-25 hoặc 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() chạy một quy trình theo thứ tự cố định trên các byte đầu vào. Bước một loại bỏ nội dung động khi removeJavaScript được đặt. Nó ủy thác cho engine content-disarm-and-reconstruction với một chính sách riêng cho việc nộp hồ sơ: JavaScript, named JavaScript, launch action, form submission, và data-import action bị loại bỏ; URI action được giữ (allowUriActions) vì hồ sơ nộp có thể mang các liên kết hợp lệ; các incremental update được làm phẳng thành một revision (flattenIncrementalUpdates). Bước hai linearize các byte đã được sanitize qua NextPDF\Writer\Linearizer của Core khi linearize được đặt. Bước ba thực thi maxFileSizeBytes của profile qua SizeAwareSplitter.

Bộ tách ước lượng số trang cho mỗi đoạn từ kích thước trang trung bình, tách, rồi kiểm tra mọi đoạn tạo ra so với giới hạn. Bất kỳ đoạn vượt giới hạn nào vẫn trải trên nhiều hơn một trang sẽ được tách lại đệ quy, giảm một nửa số trang của chính nó mỗi lượt, cho đến khi mọi đoạn con vừa hoặc là một trang đơn. Một độ sâu tách lại có giới hạn bảo vệ khỏi tình trạng không hội tụ bệnh lý. Các chỉ mục đầu ra được chuẩn hóa lại để giữ liền mạch và bắt đầu từ không.

optimize() sử dụng ba trường của profile: maxFileSizeBytes, removeJavaScript, và linearize. Các trường flattenForms, imageQuality, và compressObjectStreams là các ràng buộc profile đã khai báo nhưng optimize() không tác động tới trong 3.1.0.

Đầu ra nộp hồ sơ điện tử là một artifact phân phối, không phải một trạng thái vòng đời tài liệu. Một PDF đã tối ưu hoặc đã tách là phiên bản cuối để truyền đi và không được tái nhập vào một quy trình ký hay lưu trữ; việc xử lý lại sẽ phá vỡ các chuỗi hash và tính toàn vẹn làm chứng cứ.

Module này chuẩn bị định dạng để nộp hồ sơ cho tòa án điện tử / cơ quan chính phủ theo cấu hình. Nó không bảo đảm được bất kỳ tòa án, cơ quan đăng ký, hội đồng xét xử hay cổng nộp hồ sơ nào chấp nhận. Các giới hạn profile tích hợp mã hóa các ràng buộc thường được công bố như một tiện ích, không phải một luồng dữ liệu trực tiếp từ mỗi cổng; quy tắc cổng khác nhau theo khu vực pháp lý và thay đổi. Việc đối chiếu chúng với quy tắc hiện hành của cơ quan đăng ký đích là trách nhiệm của người nộp.

Việc xử lý diễn ra trong tiến trình và cục bộ. Việc truyền tới một tòa án, cơ quan đăng ký hay cổng nộp hồ sơ nằm bên ngoài module này.

  • Đầu vào bằng hoặc dưới giới hạn: một đoạn với phạm vi trang all; bước tách giữ nguyên các byte.
  • Sanitization bị từ chối (ví dụ một đầu vào không thể phân tích): cảnh báo CDR sanitization rejected: <reason> được ghi lại và quy trình tiếp tục với các byte gốc.
  • Lượt sanitization không tìm thấy mối đe dọa: các byte vẫn được thay bằng PDF đã dựng lại, và một mục tối ưu ghi lại lượt sạch.
  • Linearization thất bại: cảnh báo Linearization skipped: <message> được ghi lại và quy trình tiếp tục với các byte chưa linearize.
  • Một trang đơn vượt giới hạn: thực sự không thể chia, được trả về không thay đổi như một đoạn vượt giới hạn. Không có cảnh báo nào được ghi cho trường hợp này; hãy so sánh sizeBytes của mỗi đoạn với giới hạn của profile trước khi nộp.
  • Đạt tới giới hạn độ sâu tách lại: đoạn vượt giới hạn đi qua không thay đổi thay vì lặp.
  • compressionRatio() trả về 0.0 khi đầu vào gốc rỗng.
  • Module này không thực hiện thao tác mật mã nào; chế độ FIPS không áp dụng.
Hành viTham chiếuTrạng thái
Tổ chức đầu ra đã linearize (dữ liệu trang đầu ở đầu tệp)ISO 32000-2:2020 Annex F / Annex GĐược xây dựng dựa trên
Ngữ nghĩa quan hệ tệp liên kếtISO 19005-3:2012 §6.7.8Tôn trọng nơi các carrier áp dụng
Yêu cầu carrier tệp nhúngISO 19005-4:2020 Annex ATôn trọng nơi các carrier áp dụng

Linearization nhắm tới tổ chức Linearized PDF, đặt tất cả dữ liệu cần thiết để hiển thị trang đầu ở đầu tệp nhằm truy cập tăng dần hiệu quả.

Các hàng này mô tả khả năng được xây dựng dựa trên các điều khoản được trích dẫn. Hỗ trợ không phải là phù hợp tiêu chuẩn, và phù hợp tiêu chuẩn không phải là chứng nhận; NextPDF không nắm giữ chứng nhận nào. Không có tuyên bố nào trên trang này bảo đảm được bất kỳ cổng nộp hồ sơ nào chấp nhận.

Trang này mang export_control_class: legal-review-required. NextPDF không cung cấp tư vấn pháp lý. Quy tắc nộp hồ sơ khác nhau theo khu vực pháp lý và thay đổi; việc đáp ứng chúng là trách nhiệm của người nộp. Hãy tham vấn luật sư và hướng dẫn hiện hành của cơ quan đăng ký đích.

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.
}
  • Hãy kiểm tra $result->warnings trước khi nộp. Một sanitization bị từ chối hay linearization bị bỏ qua sẽ hiện ở đó, không phải như một ngoại lệ.
  • Hãy ký và lưu trữ tài liệu nguồn trước; rồi tối ưu một bản sao để phân phối. Không bao giờ ký lại, đóng dấu lại, hay lưu trữ một đoạn đã tối ưu.
  • Hãy xác minh sizeBytes của mỗi đoạn so với giới hạn của profile. Một trang vượt giới hạn không thể chia sẽ đến đầu ra một cách âm thầm.
  • Với các cổng không có factory tích hợp, hãy tạo một EFilingProfile tùy chỉnh với giới hạn được công bố của cổng đó.

Trang này chỉ ghi lại hành vi có thể quan sát từ bên ngoài và bề mặt public API được hỗ trợ. Các đường dẫn namespace nội bộ, các lớp trợ giúp, các bảng cơ chế, các tên tệp runbook, và các tiền tố ticket nằm ngoài phạm vi.