Pular para o conteúdo
getnextpdf.com

Enterprise edição

Document E-Filing — Referência Profunda

  • EFilingOptimizer prepara um PDF para protocolo judicial eletrônico em uma única passagem de ordem fixa: saneamento, linearização, divisão por tamanho.
  • EFilingProfile codifica restrições de jurisdição. Fábricas integradas cobrem US PACER, EU e-Justice e Taiwan Judicial Yuan.
  • SizeAwareSplitter impõe um limite de bytes por segmento com redivisão do tipo verificar-então-corrigir.
  • A saída é um artefato de entrega. Ela não deve reentrar em pipelines de assinatura ou arquivamento.
  • O módulo não realiza nenhuma operação criptográfica e não faz chamadas de rede de saída.

Esta capacidade é distribuída no NextPDF Enterprise (nextpdf/enterprise) e é ativada com um envelope de licença de nível Enterprise. Uma implantação sem esse direito não carrega as classes da capacidade. Compare edições e obtenha uma licença.

O limite do pacote nextpdf/enterprise restringe esta superfície; não há código de capacidade separado por recurso. Nenhuma edição Core ou Pro fornece um otimizador de e-filing.

Terminal window
composer require nextpdf/enterprise:^3
SímboloParâmetrosComportamento padrãoRetornaLança ou falha comObservações
EFilingOptimizer::optimize()string $pdfData, ?EFilingProfile $profile = nullO perfil assume EFilingProfile::pacer() por padrão; executa saneamento, linearização e divisão por tamanho em ordem fixaEFilingResultInvalidArgumentException na etapa de divisão quando uma entrada acima do limite não é um PDF válido; falhas de saneamento e linearização são rebaixadas a avisosA saída é um artefato de entrega
EFilingProfile::__construct()$name, $maxFileSizeBytes = 26_214_400, $flattenForms = true, $removeJavaScript = true, $imageQuality = 75, $linearize = true, $compressObjectStreams = truePerfil de jurisdição imutávelEFilingProfileNão lançaLimites personalizados para portais sem uma fábrica integrada
EFilingProfile::pacer()nenhumLimite de 25 MiB, qualidade de imagem 75EFilingProfileNão lançaUS PACER
EFilingProfile::euJustice()nenhumLimite de 10 MiB, qualidade de imagem 70EFilingProfileNão lançaEU e-Justice Portal
EFilingProfile::taiwan()nenhumLimite de 10 MiB, qualidade de imagem 70EFilingProfileNão lançaTaiwan Judicial Yuan
SizeAwareSplitter::splitByMaxSize()string $pdfData, int $maxBytesUm único segmento quando a entrada cabe; caso contrário, estima, verifica e redividelist<EFilingSegment>InvalidArgumentException quando uma entrada acima do limite não tem um cabeçalho %PDFEntrada abaixo do limite retorna como um único segmento sem validação
EFilingResult::isSplit()nenhumtrue quando existe mais de um segmentoboolNão lança
EFilingResult::segmentCount()nenhumNúmero total de segmentosintNão lança
EFilingResult::compressionRatio()nenhumoptimizedTotalSize / originalSizefloatNão lança; 0.0 para entrada original vaziaQuanto menor, melhor
EFilingSegment$pdfData, $pageRange, $sizeBytes, $segmentIndexSegmento de saída imutávelobjeto de valorNão lançaString de intervalo de páginas como 1-25 ou 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() executa um pipeline de ordem fixa sobre os bytes de entrada. A etapa um remove conteúdo ativo quando removeJavaScript está definido. Ela delega ao mecanismo de content-disarm-and-reconstruction com uma política específica de protocolo: JavaScript, JavaScript nomeado, ações de launch, submissão de formulário e ações de importação de dados são removidas; ações URI são mantidas (allowUriActions) porque protocolos podem conter links legítimos; atualizações incrementais são achatadas em uma única revisão (flattenIncrementalUpdates). A etapa dois lineariza os bytes saneados por meio do NextPDF\Writer\Linearizer do Core quando linearize está definido. A etapa três impõe o maxFileSizeBytes do perfil por meio do SizeAwareSplitter.

O divisor estima as páginas por segmento a partir do tamanho médio de página, divide e então verifica cada segmento produzido em relação ao limite. Qualquer segmento acima do limite que ainda abranja mais de uma página é redividido recursivamente, reduzindo pela metade seu próprio intervalo de páginas a cada passagem, até que cada filho caiba ou seja uma única página. Uma profundidade de redivisão limitada protege contra não convergência patológica. Os índices de saída são renormalizados para permanecerem contíguos e baseados em zero.

optimize() consome três campos do perfil: maxFileSizeBytes, removeJavaScript e linearize. Os campos flattenForms, imageQuality e compressObjectStreams são restrições declaradas do perfil sobre as quais optimize() não age na 3.1.0.

A saída de e-filing é um artefato de entrega, não um estado de ciclo de vida de documento. Um PDF otimizado ou dividido é final para transmissão e não deve reentrar em um pipeline de assinatura ou arquivamento; o reprocessamento quebraria as cadeias de hash e a integridade probatória.

Este módulo prepara formatos para protocolo eletrônico judicial/governamental conforme configurado. Ele não garante a aceitação por nenhum tribunal, registro, tribunal administrativo ou portal de protocolo. Os limites dos perfis integrados codificam restrições comumente publicadas por conveniência, não um feed ao vivo de cada portal; as regras dos portais variam por jurisdição e mudam. Verificá-las em relação às regras atuais do registro de destino é responsabilidade do protocolante.

O processamento é em processo e local. O transporte para um tribunal, registro ou portal de protocolo é externo a este módulo.

  • Entrada no limite ou abaixo dele: um único segmento com intervalo de páginas all; a etapa de divisão deixa os bytes inalterados.
  • Rejeição de saneamento (por exemplo, uma entrada não analisável): o aviso CDR sanitization rejected: <reason> é registrado e o pipeline continua com os bytes originais.
  • Passagem de saneamento sem ameaças encontradas: os bytes ainda são substituídos pelo PDF reconstruído, e uma entrada de otimização registra a passagem limpa.
  • Falha de linearização: o aviso Linearization skipped: <message> é registrado e o pipeline continua com bytes não linearizados.
  • Página única acima do limite: genuinamente indivisível, retornada inalterada como um único segmento acima do limite. Nenhum aviso é registrado nesse caso; compare o sizeBytes de cada segmento com o limite do perfil antes de protocolar.
  • Limite de profundidade de redivisão atingido: o segmento acima do limite passa inalterado em vez de entrar em laço.
  • compressionRatio() retorna 0.0 quando a entrada original está vazia.
  • O módulo não realiza nenhuma operação criptográfica; o modo FIPS não é aplicável.
ComportamentoReferênciaStatus
Organização da saída linearizada (dados da primeira página no início do arquivo)ISO 32000-2:2020 Annex F / Annex GConstruído em relação a
Semântica de relacionamento de arquivo associadoISO 19005-3:2012 §6.7.8Respeitada onde os carregadores se aplicam
Requisitos do carregador de arquivo incorporadoISO 19005-4:2020 Annex ARespeitados onde os carregadores se aplicam

A linearização visa a organização de PDF Linearizado, que coloca todos os dados necessários para exibir a primeira página no início do arquivo para acesso incremental eficiente.

Estas linhas descrevem a capacidade construída em relação às cláusulas citadas. Suporte não é conformidade, e conformidade não é certificação; o NextPDF não possui nenhuma certificação. Nenhuma afirmação nesta página garante a aceitação por nenhum portal de protocolo.

Esta página carrega export_control_class: legal-review-required. O NextPDF não fornece aconselhamento jurídico. As regras de protocolo variam por jurisdição e mudam; cumpri-las é responsabilidade do protocolante. Consulte advogados e a orientação atual do registro de destino.

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.
}
  • Inspecione $result->warnings antes de protocolar. Um saneamento rejeitado ou uma linearização ignorada aparece ali, não como uma exceção.
  • Assine e arquive o documento de origem primeiro; depois otimize uma cópia para entrega. Nunca reassine, recarimbe ou arquive um segmento otimizado.
  • Verifique o sizeBytes de cada segmento em relação ao limite do perfil. Uma página indivisível acima do limite chega à saída silenciosamente.
  • Para portais sem uma fábrica integrada, construa um EFilingProfile personalizado com o limite publicado do portal.

Esta página documenta apenas o comportamento observável externamente e a superfície da API pública suportada. Caminhos de namespace internos, classes auxiliares, tabelas de mecanismo, nomes de arquivo de runbook e prefixos de tíquete estão fora do escopo.