PDFium Delphi Component Docs

Unidad FPdfPreflightReport

Unidad: FPdfPreflightReport
Construye un objeto de informe reutilizable y consultable a partir de los validadores integrados de estándares PDF y exporta texto, HTML, Markdown, JSON, CSV, SARIF 2.1.0, JUnit XML, NDJSON o XML nativo

Sintaxis

function BuildPdfPreflightReport(Pdf: TPdf): TPdfPreflightReport; overload;
function BuildPdfPreflightReport(Pdf: TPdf; Standards: TPdfPreflightStandards): TPdfPreflightReport; overload;
function PdfPreflightIssueSeverity(Standard: TPdfPreflightStandard; const Code, Category: string): TPdfPreflightSeverity;
function PdfPreflightSeverityName(Severity: TPdfPreflightSeverity): string;
function PdfPreflightStandardName(Standard: TPdfPreflightStandard): string;
function PdfPreflightStatusName(Status: TPdfPreflightStatus): string;
function CreateDefaultPdfValidationRuleRegistry: TPdfValidationRuleRegistry;
function ValidatePdfFilesParallel(const FileNames: array of string; Registry: TPdfValidationRuleRegistry; const Options: TPdfBatchValidationOptions): TPdfBatchValidationReport;

Tipos públicos

TipoDescripción
TPdfPreflightStandardSelector de estándar con ppsPdfA, ppsPdfUa, ppsPdfE, ppsPdfX, ppsPdfR y ppsPdfVT
TPdfPreflightStandardsTipo conjunto usado por BuildPdfPreflightReport; AllPdfPreflightStandards selecciona todos los estándares admitidos
TPdfPreflightStatusEstado por estándar: pfsPass, pfsActionRequired o pfsReview
TPdfPreflightSeverityGravedad del problema con psevInfo, psevWarning o psevError; TPdfPreflightSeverities es el conjunto de filtro correspondiente
TPdfPreflightIssueFila de problema con StandardName, código de problema, categoría, gravedad, descripción y Recommendation, más la búsqueda MatchesText sin distinguir mayúsculas y una identidad StableKey
TPdfPreflightIssueCategoryCountFila agregada de categoría de problemas devuelta por IssueCategoryCounts
TPdfPreflightSeverityCountFila agregada de gravedad devuelta por SeverityCounts con Severity, SeverityName y Count
TPdfPreflightIssueCodeCountFila agregada de estándar y código de problema devuelta por IssueCodeCounts con StandardName, Code y Count
TPdfPreflightStandardResultUn resultado de estándar con StandardName, ConformanceName, IsCompliant, StatusName, Priority, NextAction, la matriz Issues, los contadores de gravedad ErrorCount y WarningCount, HighestSeverity, IssueCount y la búsqueda por código de problema HasIssueCode
TPdfPreflightReportInforme completo con el nombre de SourceFile, la marca de tiempo GeneratedAt, ScopeNote, la matriz Results de resultados por estándar, los contadores de resumen ActionRequiredStandardCount, CompliantStandardCount, NonCompliantStandardCount, PassedStandardCount, ReviewStandardCount, StandardCount, HighestSeverity y TotalIssueCount, los asistentes de consulta FilterByStandards, FilterByCategory, FilterBySeverities, SearchIssues, FlattenIssues, HasIssueCode, FindStandard, Fingerprint, IssueCategoryCounts, IssueCodeCounts y SeverityCounts, y los asistentes de exportación ToCsv, ToHtml, ToMarkdown, ToJson, ToNdjson, ToSarif, ToJUnitXml, ToText y ToXml con los procedimientos SaveXxxToFile correspondientes
TPdfValidationRuleCláusula de perfil declarativa con su Id y Profile, Clause, gravedad, DependencyIds, la guía de reparación FixHint, IssueCode y un Predicate de problema, estándar o personalizado elegido por PredicateKind
TPdfValidationBudgetAcota las reglas seleccionadas (MaxRules), los fallos notificados (MaxIssues), los objetos visitados (MaxObjects), la recursión (MaxRecursionDepth), los bytes de evidencia (MaxEvidenceBytes), la memoria reservada (MaxMemoryBytes) y el tiempo transcurrido (TimeoutMilliseconds)
TPdfValidationOptionsSelecciona Profiles y Severities, aporta el Budget, habilita FastFail y admite la cancelación cooperativa a través de CancellationToken
TPdfValidationExecutionContextContexto de ejecución acotado entregado a los predicados personalizados; Create almacena las opciones e inicia el reloj de ejecución, Checkpoint, ConsumeEvidence, ConsumeObjects, EnterRecursion, LeaveRecursion, ReserveMemory y ReleaseMemory imponen el presupuesto, y BudgetExceeded, BudgetReason, EvidenceBytes, ObjectsVisited, RecursionDepth, ReservedMemory, PeakReservedMemory y StartTick exponen contadores en vivo
TPdfValidationRuleRegistryRegistro de reglas seguro para subprocesos; Create y Destroy gestionan la sección crítica, RegisterRule y Clear mutan el conjunto registrado, Count y Snapshot lo leen bajo bloqueo, y Execute valida un informe con evidencia y tiempos por cláusula
TPdfBatchValidationOptionsControla el WorkerCount, los estándares, las ValidationOptions anidadas, el FailFast a nivel de documento y la cancelación a través de CancellationToken
TPdfBatchValidationReportResultados por documento en orden de entrada con distribuciones agregadas de problemas, ElapsedMilliseconds, estado terminal y los totales WorkerCount, PassedDocumentCount, FailedDocumentCount, CancelledDocumentCount y ErrorDocumentCount
TPdfARepairPlanSteps de remediación ordenados por dependencias y clasificados por categoría, seguridad, necesidad de reescritura, impacto en firmas y estado de bloqueo, con los resúmenes DocumentHasSignatures, AllowSignatureInvalidation, BlockedStepCount, AutomaticStepCount y ManualStepCount, IsExecutable y la salida JSON ToJson
TPdfARepairCategoryClasifica el trabajo de reparación como parcSecurity, parcFonts, parcColour, parcAttachments, parcStructure, parcMetadata o parcOther
TPdfARepairSafetyparsAutomatic, parsReviewRequired o parsManual
TPdfARepairStepUna acción de reparación ordenada con su Order, categoría, IssueCode, acción, Evidence, dependencia y Safety, más RequiresFullRewrite, InvalidatesSignatures y Blocked
TPdfXProductionPreflightOptionsControla el umbral MinimumImageDpi, TreatTransparencyAsErrorBeforePdfX4 y el informe de IncludeInformationalColourants
TPdfXProductionPreflightReportResultado de Validation de PDF/X más los datos por página de Pages, HasOutputIntent, HasEmbeddedFonts, HasTransparency, HasOverprint, SeparationCount, DeviceNCount, MinimumEffectiveDpi, la matriz Issues, ErrorCount, IsProductionReady y la salida JSON ToJson
TPdfXProductionIssueKindClasifica los problemas pxpikOutputIntent, pxpikPageBox, pxpikFont, pxpikColourant, pxpikTransparency, pxpikOverprint, pxpikSeparation y pxpikImageResolution
TPdfXProductionIssueUn hallazgo de producción focalizado con su Kind, gravedad, PageNumber, ObjectIndex y Evidence
TPdfXProductionPageDatos por página de PageNumber, HasMediaBox, HasTrimBox, HasBleedBox, HasArtBox, TextObjectCount, PathObjectCount, ImageCount, HasTransparency y MinimumEffectiveDpi
TPdfValidationPredicateKindSelecciona la evaluación de reglas pvpkIssueAbsent, pvpkStandardPass o pvpkCustom
TPdfValidationRuleStatuspvrrsPass, pvrrsFail, pvrrsSkipped o pvrrsError
TPdfValidationRunStatusInforma pvrsComplete, pvrsFastFailed, pvrsBudgetExceeded, pvrsCancelled o pvrsError
TPdfValidationRuleResultResultado por regla con RuleId, Profile, Clause, estado, Evidence, la guía de reparación FixHint y ElapsedMilliseconds
TPdfValidationRunUna ejecución acotada del registro con la matriz Results, los contadores PassedRuleCount, FailedRuleCount, SkippedRuleCount y ErrorRuleCount, ObjectsVisited, EvidenceBytes, PeakReservedMemory, ElapsedMilliseconds, IncompleteReason y asistentes de conformidad
TPdfPreflightIssues, TPdfPreflightStandardResultsMatrices dinámicas que contienen filas de problemas y resultados por estándar
TPdfPreflightIssueCategoryCounts, TPdfPreflightSeverityCounts, TPdfPreflightIssueCodeCountsMatrices dinámicas devueltas por los agregadores de categorías, gravedades y códigos de problema estables
TPdfARepairStepsPasos de reparación de PDF/A ordenados por dependencias almacenados por TPdfARepairPlan
TPdfXProductionPages, TPdfXProductionIssuesDatos de producción por página y problemas de producción de PDF/X focalizados
TPdfValidationProfiles, TPdfValidationRules, TPdfValidationRuleResultsNombres de perfiles seleccionados, reglas declarativas registradas y resultados de ejecución por regla
TPdfValidationRulePredicateDevolución de llamada de regla personalizada que evalúa un informe a través de un contexto de ejecución acotado y devuelve evidencia de diagnóstico
TPdfBatchValidationItemStatusEstado por documento pbvisPending, pbvisPass, pbvisFail, pbvisCancelled o pbvisError
TPdfBatchValidationStatusEstado del lote completo pbvsComplete, pbvsPartial, pbvsCancelled o pbvsFailed
TPdfBatchValidationItemUn archivo de entrada con su informe Preflight, el resultado de Validation de reglas, estado, texto ErrorMessage y ElapsedMilliseconds
TPdfBatchValidationItemsResultados por documento en orden de entrada devueltos por la validación en paralelo

Descripción

BuildPdfPreflightReport llama a ValidatePdfA, ValidatePdfUa, ValidatePdfE, ValidatePdfX, ValidatePdfR y ValidatePdfVT para un documento TPdf activo y devuelve un TPdfPreflightReport

El informe contiene una fila por estándar seleccionado, con la conformidad detectada, el estado, la prioridad, la siguiente acción, el código de problema, la categoría, la gravedad Info / Warning / Error, la descripción y la recomendación. Los contadores de estado, gravedad, categoría y código de problema exponen datos de resumen reutilizables

FindStandard, HasIssueCode, FlattenIssues, SearchIssues, FilterByStandards, FilterBySeverities y FilterByCategory proporcionan vistas de consulta en memoria. Los informes filtrados preservan los valores originales de conformidad y estado mientras devuelven matrices de problemas independientes

Fingerprint devuelve una identidad SHA-256 en minúsculas para el conjunto ordenado de resultados de estándares y problemas. Las rutas de origen y las marcas de tiempo de generación se excluyen deliberadamente para que los resultados de validación equivalentes compartan una misma huella

Cada exportación To* tiene un método Save*ToFile correspondiente. Los archivos se escriben directamente como UTF-8; el CSV conserva una BOM para su detección en Excel y neutraliza las celdas que comienzan con fórmulas

TPdfValidationRuleRegistry ejecuta cláusulas de perfil declarativas fuera de los validadores de estándares monolíticos. Las reglas pueden depender de cláusulas anteriores, seleccionar un predicado integrado de problema o de perfil, o aportar un predicado personalizado que registre evidencia acotada

TPdfValidationExecutionContext proporciona puntos de control cooperativos y contadores explícitos de objetos, recursión, evidencia UTF-8 y memoria reservada. Una ejecución informa de fast-fail, cancelación o agotamiento del presupuesto como un estado incompleto en lugar de un resultado de conformidad completo

ValidatePdfFilesParallel entrega a cada trabajador un documento TPdf privado, preserva el orden de entrada, agrega los recuentos de códigos de problema y registra de forma independiente el éxito, el fallo, la cancelación o los errores de carga de cada archivo

PDFium no es thread-safe entre documentos, así que los trabajadores abren e inspeccionan los archivos de uno en uno bajo un lock compartido y ejecutan en paralelo solo la evaluación de reglas; un WorkerCount mayor acelera por tanto los registros cargados de reglas, no la carga de documentos

BuildPdfARepairPlan convierte la evidencia de PDF/A en pasos de seguridad, fuentes, color, adjuntos, estructura, metadatos y residuales, en orden de dependencias. Los pasos que invalidan firmas quedan bloqueados a menos que quien llame aporte autorización explícita

BuildPdfXProductionPreflight combina el resultado del perfil PDF/X con datos nativos de páginas e imágenes, análisis estructurales de colorantes y sobreimpresión, y comprobaciones de cajas de página. Nunca decodifica ni copia cargas de imágenes durante el análisis de resolución

Formatos de salida

FormatoForma
TextOrigen en texto plano, hora de generación, nota de alcance, resumen, filas de estándares, plan de acción, categorías de problemas y detalles de problemas
HTMLInforme HTML autónomo con estilos de estado, una tabla de categorías de problemas, tabla de estándares y tabla de problemas
MarkdownEncabezados y tablas Markdown para estándares, categorías de problemas, plan de acción y detalles de problemas
JSONObjeto estructurado con format, sourceKind, summary, issueCategoryCounts y matrices de problemas por estándar
CSVFilas aptas para hojas de cálculo identificadas por RowType: Summary, Standard, Category e Issue
SARIF 2.1.0Resultados para CI y análisis de código con IDs de reglas estables, niveles de gravedad, mensajes de remediación, propiedades y huellas parciales
JUnit XMLUn caso de prueba por estándar seleccionado, con los resultados Action required emitidos como fallos y los resultados Review emitidos como casos omitidos
NDJSONUn objeto JSON de resumen, estándar o problema por línea para ingesta incremental sin cargar un gran documento JSON
XMLXML de preflight nativo con metadatos del informe, atributos de resumen, resultados de estándares, gravedad, descripciones y recomendaciones

Observaciones

Ejemplo

uses FPdfPreflightReport;

var
  Report: TPdfPreflightReport;
begin
  Pdf1.FileName := 'C:\Incoming\job.pdf';
  Pdf1.Active := True;
  Report := BuildPdfPreflightReport(Pdf1, [ppsPdfA, ppsPdfX]);
  Memo1.Lines.Text := Report.ToText;
  Report.SaveHtmlToFile('C:\Incoming\job.preflight.html');
  Report.SaveMarkdownToFile('C:\Incoming\job.preflight.md');
  Report.SaveJsonToFile('C:\Incoming\job.preflight.json');
  Report.SaveCsvToFile('C:\Incoming\job.preflight.csv');
  Report.SaveSarifToFile('C:\Incoming\job.preflight.sarif');
  Report.SaveJUnitXmlToFile('C:\Incoming\job.preflight.junit.xml');
  Report.SaveNdjsonToFile('C:\Incoming\job.preflight.ndjson');
  Report.SaveXmlToFile('C:\Incoming\job.preflight.xml');
end;

Véase también

ValidatePdfA, ValidatePdfX