Ir al contenido
getnextpdf.com

Enterprise edición

Presentación electrónica de documentos — Referencia detallada

  • EFilingOptimizer prepara un PDF para la presentación judicial electrónica en una única pasada de orden fijo: saneamiento, linearización, división por tamaño.
  • EFilingProfile codifica las restricciones jurisdiccionales. Las factorías integradas cubren US PACER, EU e-Justice y el Poder Judicial de Taiwán.
  • SizeAwareSplitter impone un límite de bytes por segmento con una nueva división del tipo verificar-y-luego-corregir.
  • La salida es un artefacto de entrega. No debe volver a entrar en pipelines de firma o de archivado.
  • El módulo no realiza operaciones criptográficas ni efectúa llamadas de red salientes.

Esta capacidad se distribuye en NextPDF Enterprise (nextpdf/enterprise) y se activa con un sobre de licencia de nivel Enterprise. Una implementación sin ese derecho no carga las clases de la capacidad. Comparar ediciones y obtener una licencia.

El límite del paquete nextpdf/enterprise restringe esta superficie; no existe un código de capacidad separado por función. Ninguna edición Core o Pro proporciona un optimizador de e-filing.

Ventana de terminal
composer require nextpdf/enterprise:^3
SímboloParámetrosComportamiento por defectoDevuelveLanza o falla conNotas
EFilingOptimizer::optimize()string $pdfData, ?EFilingProfile $profile = nullEl perfil por defecto es EFilingProfile::pacer(); ejecuta saneamiento, linearización y división por tamaño en orden fijoEFilingResultInvalidArgumentException del paso de división cuando una entrada por encima del límite no es un PDF válido; los fallos de saneamiento y linearización se degradan a advertenciasLa salida es un artefacto de entrega
EFilingProfile::__construct()$name, $maxFileSizeBytes = 26_214_400, $flattenForms = true, $removeJavaScript = true, $imageQuality = 75, $linearize = true, $compressObjectStreams = truePerfil jurisdiccional inmutableEFilingProfileNo lanzaLímites personalizados para portales sin factoría integrada
EFilingProfile::pacer()ningunoLímite de 25 MiB, calidad de imagen 75EFilingProfileNo lanzaUS PACER
EFilingProfile::euJustice()ningunoLímite de 10 MiB, calidad de imagen 70EFilingProfileNo lanzaEU e-Justice Portal
EFilingProfile::taiwan()ningunoLímite de 10 MiB, calidad de imagen 70EFilingProfileNo lanzaPoder Judicial de Taiwán
SizeAwareSplitter::splitByMaxSize()string $pdfData, int $maxBytesUn único segmento cuando la entrada cabe; de lo contrario estima, verifica y vuelve a dividirlist<EFilingSegment>InvalidArgumentException cuando una entrada por encima del límite carece de una cabecera %PDFUna entrada bajo el límite se devuelve como un único segmento sin validación
EFilingResult::isSplit()ningunotrue cuando existe más de un segmentoboolNo lanza
EFilingResult::segmentCount()ningunoNúmero total de segmentosintNo lanza
EFilingResult::compressionRatio()ningunooptimizedTotalSize / originalSizefloatNo lanza; 0.0 para una entrada original vacíaCuanto menor, mejor
EFilingSegment$pdfData, $pageRange, $sizeBytes, $segmentIndexSegmento de salida inmutablevalue objectNo lanzaCadena de rango de páginas como 1-25 o 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() ejecuta un pipeline de orden fijo sobre los bytes de entrada. El paso uno elimina el contenido activo cuando removeJavaScript está establecido. Delega en el motor de desarme y reconstrucción de contenido con una política específica de presentación: se eliminan JavaScript, JavaScript nombrado, acciones de lanzamiento, envío de formularios y acciones de importación de datos; las acciones URI se conservan (allowUriActions) porque las presentaciones pueden llevar enlaces legítimos; las actualizaciones incrementales se aplanan en una única revisión (flattenIncrementalUpdates). El paso dos lineariza los bytes saneados a través del NextPDF\Writer\Linearizer de Core cuando linearize está establecido. El paso tres impone el maxFileSizeBytes del perfil mediante SizeAwareSplitter.

El divisor estima las páginas por segmento a partir del tamaño medio de página, divide y luego verifica cada segmento producido frente al límite. Cualquier segmento por encima del límite que aún abarque más de una página se vuelve a dividir de forma recursiva, reduciendo a la mitad su propio tramo de páginas en cada pasada, hasta que cada hijo cabe o es una única página. Una profundidad de re-división acotada protege contra la no convergencia patológica. Los índices de salida se renormalizan para permanecer contiguos y de base cero.

optimize() consume tres campos del perfil: maxFileSizeBytes, removeJavaScript y linearize. Los campos flattenForms, imageQuality y compressObjectStreams son restricciones de perfil declaradas sobre las que optimize() no actúa en 3.1.0.

La salida del e-filing es un artefacto de entrega, no un estado del ciclo de vida del documento. Un PDF optimizado o dividido es final para su transmisión y no debe volver a entrar en un pipeline de firma o de archivado; el reprocesamiento rompería las cadenas de hash y la integridad probatoria.

Este módulo prepara formatos para la presentación ante tribunales electrónicos / administraciones según se configure. No garantiza la aceptación por parte de ningún tribunal, registro, órgano jurisdiccional o portal de presentación. Los límites de los perfiles integrados codifican las restricciones publicadas habitualmente como una comodidad, no como una fuente en vivo de cada portal; las reglas de los portales varían según la jurisdicción y cambian. Verificarlas frente a las reglas vigentes del registro de destino es responsabilidad de quien presenta.

El procesamiento es en proceso y local. El transporte a un tribunal, registro o portal de presentación es externo a este módulo.

  • Entrada en o por debajo del límite: un único segmento con rango de páginas all; el paso de división deja los bytes sin cambios.
  • Rechazo del saneamiento (por ejemplo, una entrada no analizable): se registra la advertencia CDR sanitization rejected: <reason> y el pipeline continúa con los bytes originales.
  • Pasada de saneamiento sin amenazas encontradas: los bytes se sustituyen igualmente por el PDF reconstruido y una entrada de optimización registra la pasada limpia.
  • Fallo de linearización: se registra la advertencia Linearization skipped: <message> y el pipeline continúa con los bytes no linearizados.
  • Una única página por encima del límite: genuinamente indivisible, se devuelve sin cambios como un único segmento por encima del límite. No se registra ninguna advertencia para este caso; comparar el sizeBytes de cada segmento con el límite del perfil antes de presentar.
  • Límite de profundidad de re-división alcanzado: el segmento por encima del límite pasa sin cambios en lugar de entrar en bucle.
  • compressionRatio() devuelve 0.0 cuando la entrada original está vacía.
  • El módulo no realiza operaciones criptográficas; el modo FIPS no es aplicable.
ComportamientoReferenciaEstado
Organización de la salida linearizada (datos de la primera página al inicio del archivo)ISO 32000-2:2020 Annex F / Annex GConstruido conforme a
Semántica de la relación de archivos asociadosISO 19005-3:2012 §6.7.8Respetado donde se aplican portadores
Requisitos del portador de archivos incrustadosISO 19005-4:2020 Annex ARespetado donde se aplican portadores

La linearización tiene como objetivo la organización del PDF linearizado, que coloca todos los datos necesarios para mostrar la primera página al comienzo del archivo para un acceso incremental eficiente.

Estas filas describen una capacidad construida conforme a las cláusulas citadas. El soporte no es conformidad, y la conformidad no es certificación; NextPDF no posee ninguna certificación. Ninguna afirmación de esta página garantiza la aceptación por parte de ningún portal de presentación.

Esta página lleva export_control_class: legal-review-required. NextPDF no proporciona asesoramiento jurídico. Las reglas de presentación varían según la jurisdicción y cambian; cumplirlas es responsabilidad de quien presenta. Consultar con un asesor legal y con la guía vigente del 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.
}
  • Inspeccionar $result->warnings antes de presentar. Un saneamiento rechazado o una linearización omitida aparecen ahí, no como una excepción.
  • Firmar y archivar primero el documento fuente; luego optimizar una copia para la entrega. Nunca volver a firmar, resellar ni archivar un segmento optimizado.
  • Verificar el sizeBytes de cada segmento frente al límite del perfil. Una página indivisible por encima del límite llega a la salida de forma silenciosa.
  • Para portales sin factoría integrada, construir un EFilingProfile personalizado con el límite publicado del portal.

Esta página documenta únicamente el comportamiento observable externamente y la superficie pública soportada de la API. Las rutas de espacios de nombres internos, las clases auxiliares, las tablas de mecanismos, los nombres de archivo de runbooks y los prefijos de tickets quedan fuera de alcance.