PDFium Delphi Component Docs

Unidad FPdfContentNormalize

Unidad: FPdfContentNormalize
Normalización que preserva la sintaxis de una secuencia lógica de contenido de página PDF y detección robusta de límites de imágenes en línea

Sintaxis

const
  PdfContentNormalizeDefaultInputLimit = Int64(256) * 1024 * 1024;
  PdfContentNormalizeDefaultOutputLimit = Int64(256) * 1024 * 1024;
  PdfContentNormalizeDefaultTokenLimit = 10000000;

function NormalizePdfContentSequence(const Streams: array of TBytes;
  const Options: TPdfContentNormalizeOptions; out Output: TBytes;
  out Report: TPdfContentNormalizeReport): Boolean;

function CollectPdfContentResourceUses(const Data: TBytes;
  out Uses: TPdfContentResourceUses;
  out ErrorText: string): Boolean;

function FindInlineImageBlock(const Data: TBytes; StartPos: Integer;
  out BiPos, IdPos, DataStart, EndImageStart: Integer): Boolean;

Descripción

NormalizePdfContentSequence une los flujos de contenido suministrados en el orden de la matriz y tokeniza el resultado como una única secuencia lógica de contenido de página

Preserva cadenas literales, cadenas hexadecimales, nombres, matrices, diccionarios, cargas de imágenes en línea y operadores desconocidos mientras canoniza la separación de tokens; los comentarios pueden eliminarse y puede exigirse el equilibrio estructural

CollectPdfContentResourceUses registra los nombres de recursos consumidos por los operadores de texto, XObject, estado de gráficos, espacio de color, patrón, sombreado, propiedad de contenido marcado e imagen en línea bajo el presupuesto central de tokens

FindInlineImageBlock localiza un bloque BI, ID y EI completo sin tratar una secuencia de bytes EI dentro de los datos de la carga de la imagen como el terminador

Constantes

ConstanteDescripción
PdfContentNormalizeDefaultInputLimitLímite lógico de entrada por página predeterminado de 256 MiB
PdfContentNormalizeDefaultOutputLimitLímite de salida normalizada por página predeterminado de 256 MiB
PdfContentNormalizeDefaultTokenLimitLímite por página predeterminado de 10000000 tokens

Funciones

FunciónDescripción
TPdfContentNormalizeOptions.DefaultHabilita la eliminación de comentarios, la validación de equilibrio, la compresión Flate beneficiosa y el salto de páginas no seguras; no permite reescrituras firmadas y aplica los tres límites predeterminados
NormalizePdfContentSequenceDevuelve los bytes normalizados y un informe detallado, o False con un estado de fallo y texto de diagnóstico
CollectPdfContentResourceUsesDevuelve la clase de recurso y el nombre PDF decodificado de cada operador de contenido que consume recursos, o False con texto de diagnóstico para entradas malformadas o fuera de presupuesto
FindInlineImageBlockDevuelve los desplazamientos del siguiente bloque de imagen en línea completo en o después de StartPos

Tipos

TipoDescripción
TPdfContentNormalizeStatusCategoría de resultado o de fallo para la normalización de secuencias y documentos
TPdfContentNormalizeOptionsPolítica de normalización y límites de bytes y tokens por página
TPdfContentNormalizeReportEstado, totales de bytes y páginas, métricas de flujos y tokens, observaciones de sintaxis y texto de diagnóstico
TPdfContentResourceKindValores de recurso pcrkFont, pcrkXObject, pcrkExtGState, pcrkColorSpace, pcrkPattern, pcrkShading y pcrkProperties
TPdfContentResourceUseUn Name de recurso decodificado junto con su Kind
TPdfContentResourceUsesMatriz dinámica de usos de recursos recopilados en orden de contenido

Valores de estado

ValorSignificado
pcnsNotStartedEl informe se ha inicializado pero la normalización no se ha completado
pcnsCompletedLa normalización se completó con éxito
pcnsInputLimitExceededLa entrada lógica excedió MaxInputBytesPerPage o un límite configurado no era positivo
pcnsOutputLimitExceededLos bytes normalizados excederían MaxOutputBytesPerPage
pcnsTokenLimitExceededLa secuencia de contenido excedió MaxTokensPerPage
pcnsMalformedTokenNo se pudo leer por completo un token de contenido PDF
pcnsUnresolvedInlineImageNo se pudo encontrar un límite completo de la carga de una imagen en línea
pcnsUnbalancedStateFalló el equilibrio exigido de ámbitos de gráficos, texto, contenido marcado, compatibilidad, matrices o diccionarios
pcnsUnsupportedFilterLa normalización a nivel de documento encontró un filtro de flujo de contenido que no puede decodificar
pcnsEncryptedDocumentLa normalización a nivel de documento rechazó una entrada cifrada
pcnsSignedDocumentLa normalización a nivel de documento rechazó una entrada firmada sin autorización
pcnsDocumentRewriteFailedLa reescritura o verificación del grafo de objetos PDF que envuelve falló
pcnsResourceBudgetExceededSe alcanzó el plazo del TPdfParserResourceBudget de todo el proceso antes de completar la normalización

Opciones

CampoDescripción
RemoveCommentsOmite los comentarios PDF conservando los límites de tokens requeridos
RequireBalancedStateExige ámbitos equilibrados de q/Q, BT/ET, contenido marcado, compatibilidad, matrices y diccionarios
CompressOutputPermite que el envoltorio a nivel de documento comprima con Flate un flujo de página normalizado cuando la compresión reduce su tamaño
SkipUnsafePagesPermite que la normalización a nivel de documento preserve una página sin cambios tras un resultado no seguro o no admitido, en lugar de abortar la reescritura del documento
AllowSignedDocumentPermite explícitamente una reescritura completa de la entrada firmada, lo que invalida los rangos de bytes de firma existentes
MaxInputBytesPerPageMáximo total de bytes a través de los flujos de contenido suministrados para una página
MaxOutputBytesPerPageMáximo de bytes permitido en la secuencia de contenido normalizada
MaxTokensPerPageNúmero máximo de tokens inspeccionados para una página

Campos del informe

CampoDescripción
StatusTPdfContentNormalizeStatus actual
SourceByteCountTotal de bytes de contenido de origen
OutputByteCountTotal de bytes de salida normalizados o reescritos
PageCountPáginas inspeccionadas por la normalización a nivel de documento
NormalizedPageCountPáginas reemplazadas con éxito por contenido normalizado
SkippedPageCountPáginas no seguras preservadas sin cambios bajo la política de salto
InputStreamCountFlujos de contenido de origen unidos en secuencias lógicas de página
OutputStreamCountFlujos de contenido normalizados producidos
CoalescedArrayCountMatrices /Contents de múltiples flujos reemplazadas por un único flujo normalizado
TokenCountTokens procesados
CommentCountComentarios encontrados, tanto retenidos como eliminados
InlineImageCountBloques de imágenes en línea completos preservados
UnknownOperatorCountOperadores no reconocidos preservados textualmente
ErrorMessageTexto de diagnóstico del primer fallo

Desplazamientos de imágenes en línea

Véase también

FPdfCompress, TPdf.SaveAsNormalizedContent