PDFium Delphi Component Docs

Unidade FPdfPreflightReport

Unidade: FPdfPreflightReport
Constrói um objeto de relatório reutilizável e consultável a partir dos validadores de standards PDF incorporados e exporta texto, HTML, Markdown, JSON, CSV, SARIF 2.1.0, JUnit XML, NDJSON ou XML nativo

Syntax

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;

Public Types

TypeDescription
TPdfPreflightStandardSeletor de standard com ppsPdfA, ppsPdfUa, ppsPdfE, ppsPdfX, ppsPdfR e ppsPdfVT
TPdfPreflightStandardsTipo set usado por BuildPdfPreflightReport; AllPdfPreflightStandards seleciona todos os standards suportados
TPdfPreflightStatusEstado por standard: pfsPass, pfsActionRequired ou pfsReview
TPdfPreflightSeverityGravidade de problemas com psevInfo, psevWarning ou psevError; TPdfPreflightSeverities é o conjunto de filtros correspondente
TPdfPreflightIssueLinha de problema com StandardName, código de problema, categoria, gravidade, descrição e Recommendation, mais a pesquisa MatchesText insensível a maiúsculas e minúsculas e uma identidade StableKey
TPdfPreflightIssueCategoryCountLinha agregada de categoria de problemas devolvida por IssueCategoryCounts
TPdfPreflightSeverityCountLinha agregada de gravidade devolvida por SeverityCounts com Severity, SeverityName e Count
TPdfPreflightIssueCodeCountLinha agregada de standard e código de problema devolvida por IssueCodeCounts com StandardName, Code e Count
TPdfPreflightStandardResultUm resultado de standard com StandardName, ConformanceName, IsCompliant, StatusName, Priority, NextAction, o array Issues, contadores de gravidade, gravidade máxima e pesquisa por código de problema
TPdfPreflightReportRelatório completo com o nome SourceFile, o timestamp GeneratedAt, ScopeNote, o array Results de resultados por standard, contadores de sumário e helpers de exportação
TPdfValidationRuleCláusula de perfil declarativa com o respetivo Id e Profile, Clause, gravidade, DependencyIds, orientação de reparação FixHint, IssueCode e um Predicate de problema, de standard ou personalizado escolhido por PredicateKind
TPdfValidationBudgetLimita regras selecionadas (MaxRules), falhas reportadas (MaxIssues), objetos visitados (MaxObjects), recursão (MaxRecursionDepth), bytes de evidência (MaxEvidenceBytes), memória reservada (MaxMemoryBytes) e tempo decorrido (TimeoutMilliseconds)
TPdfValidationOptionsSeleciona Profiles e Severities, fornece o Budget, ativa FastFail e suporta cancelamento cooperativo através de CancellationToken
TPdfValidationExecutionContextContexto de execução limitado entregue a predicados personalizados; Create guarda as opções e arranca o relógio da execução, Checkpoint, ConsumeEvidence, ConsumeObjects, EnterRecursion, LeaveRecursion, ReserveMemory e ReleaseMemory impõem o orçamento, e BudgetExceeded, BudgetReason, EvidenceBytes, ObjectsVisited, RecursionDepth, ReservedMemory, PeakReservedMemory e StartTick expõem contadores em tempo real
TPdfValidationRuleRegistryRegisto de regras thread-safe; Create e Destroy gerem a secção crítica, RegisterRule e Clear mutam o conjunto registado, Count e Snapshot leem-no sob lock, e Execute valida um relatório com evidência e tempos por cláusula
TPdfBatchValidationOptionsControla o WorkerCount, os standards, as ValidationOptions aninhadas, o FailFast ao nível do documento e o cancelamento através de CancellationToken
TPdfBatchValidationReportResultados por documento pela ordem de entrada, com distribuições agregadas de problemas, ElapsedMilliseconds, estado terminal e os totais WorkerCount, PassedDocumentCount, FailedDocumentCount, CancelledDocumentCount e ErrorDocumentCount
TPdfARepairPlanSteps de remediação ordenados por dependência e classificados por categoria, segurança, necessidade de reescrita, impacto em assinaturas e estado de bloqueio, com os rollups DocumentHasSignatures, AllowSignatureInvalidation, BlockedStepCount, AutomaticStepCount e ManualStepCount, mais saída JSON
TPdfARepairCategoryClassifica o trabalho de reparação como parcSecurity, parcFonts, parcColour, parcAttachments, parcStructure, parcMetadata ou parcOther
TPdfARepairSafetyparsAutomatic, parsReviewRequired ou parsManual
TPdfARepairStepUma ação de reparação ordenada com o respetivo Order, categoria, IssueCode, ação, Evidence, dependência e Safety, mais RequiresFullRewrite, InvalidatesSignatures e Blocked
TPdfXProductionPreflightOptionsControla o limiar MinimumImageDpi, TreatTransparencyAsErrorBeforePdfX4 e o reporte de IncludeInformationalColourants
TPdfXProductionPreflightReportResultado de Validation PDF/X mais os factos Pages por página, HasOutputIntent, HasEmbeddedFonts, HasTransparency, HasOverprint, SeparationCount, DeviceNCount, MinimumEffectiveDpi, o array Issues e saída JSON
TPdfXProductionIssueKindClassifica problemas pxpikOutputIntent, pxpikPageBox, pxpikFont, pxpikColourant, pxpikTransparency, pxpikOverprint, pxpikSeparation e pxpikImageResolution
TPdfXProductionIssueUma conclusão de produção focada com o respetivo Kind, gravidade, PageNumber, ObjectIndex e Evidence
TPdfXProductionPageFactos por página para PageNumber, HasMediaBox, HasTrimBox, HasBleedBox, HasArtBox, TextObjectCount, PathObjectCount, ImageCount, HasTransparency e MinimumEffectiveDpi
TPdfValidationPredicateKindSeleciona a avaliação de regras pvpkIssueAbsent, pvpkStandardPass ou pvpkCustom
TPdfValidationRuleStatuspvrrsPass, pvrrsFail, pvrrsSkipped ou pvrrsError
TPdfValidationRunStatusReporta pvrsComplete, pvrsFastFailed, pvrsBudgetExceeded, pvrsCancelled ou pvrsError
TPdfValidationRuleResultResultado por regra com RuleId, Profile, Clause, estado, Evidence, orientação de reparação FixHint e ElapsedMilliseconds
TPdfValidationRunUma execução limitada do registo com o array Results, os contadores PassedRuleCount, FailedRuleCount, SkippedRuleCount e ErrorRuleCount, ObjectsVisited, EvidenceBytes, PeakReservedMemory, ElapsedMilliseconds, IncompleteReason e helpers de conformidade
TPdfPreflightIssues, TPdfPreflightStandardResultsArrays dinâmicos com linhas de problemas e resultados por standard
TPdfPreflightIssueCategoryCounts, TPdfPreflightSeverityCounts, TPdfPreflightIssueCodeCountsArrays dinâmicos devolvidos pelos agregadores de categoria, gravidade e códigos de problema estáveis
TPdfARepairStepsPassos de reparação PDF/A ordenados por dependência, guardados por TPdfARepairPlan
TPdfXProductionPages, TPdfXProductionIssuesFactos de produção por página e problemas de produção PDF/X focados
TPdfValidationProfiles, TPdfValidationRules, TPdfValidationRuleResultsNomes de perfis selecionados, regras declarativas registadas e resultados de execução por regra
TPdfValidationRulePredicateCallback de regra personalizado que avalia um relatório através de um contexto de execução limitado e devolve evidência de diagnóstico
TPdfBatchValidationItemStatusEstado por documento pbvisPending, pbvisPass, pbvisFail, pbvisCancelled ou pbvisError
TPdfBatchValidationStatusEstado de lote completa pbvsComplete, pbvsPartial, pbvsCancelled ou pbvsFailed
TPdfBatchValidationItemUm ficheiro de entrada com o respetivo relatório Preflight, o resultado de Validation de regras, estado, texto ErrorMessage e ElapsedMilliseconds
TPdfBatchValidationItemsResultados por documento, pela ordem de entrada, devolvidos pela validação paralela

Description

BuildPdfPreflightReport chama ValidatePdfA, ValidatePdfUa, ValidatePdfE, ValidatePdfX, ValidatePdfR e ValidatePdfVT para um documento TPdf ativo e devolve um TPdfPreflightReport

O relatório contém uma linha por standard selecionado, com a conformidade detetada, o estado, a prioridade, a ação seguinte, o código de problema, a categoria, a gravidade Info / Warning / Error, a descrição e a recomendação. Os contadores de estado, gravidade, categoria e código de problema expõem dados de sumário reutilizáveis

FindStandard, HasIssueCode, FlattenIssues, SearchIssues, FilterByStandards, FilterBySeverities e FilterByCategory fornecem vistas de consulta em memória. Os relatórios filtrados preservam os valores originais de conformidade e estado, devolvendo arrays de problemas independentes

Fingerprint devolve uma identidade SHA-256 em minúsculas para o conjunto ordenado de resultados de standards e problemas. Os caminhos de origem e os timestamps de geração são deliberadamente excluídos, para que resultados de validação equivalentes partilhem uma única fingerprint

Cada exportação To* tem um método Save*ToFile correspondente. Os ficheiros são escritos diretamente em UTF-8; o CSV mantém um BOM para deteção pelo Excel e neutraliza células com início de fórmula

TPdfValidationRuleRegistry executa cláusulas declarativas de perfil fora dos validadores de standards monolíticos. As regras podem depender de cláusulas anteriores, selecionar um predicado incorporado de problema ou de perfil, ou fornecer um predicado personalizado que registra evidência limitada

TPdfValidationExecutionContext fornece checkpoints cooperativos e contadores explícitos para objetos, recursão, evidência UTF-8 e memória reservada. Uma execução reporta fast-fail, cancelamento ou exaustão de orçamento como um estado incompleto, em vez de um resultado de conformidade completo

ValidatePdfFilesParallel dá a cada worker um documento TPdf privado, preserva a ordem de entrada, agrega contagens de códigos de problema e registra sucesso, falha, cancelamento ou erros de carregamento de forma independente para cada ficheiro

BuildPdfARepairPlan mapeia a evidência PDF/A em passos de segurança, fontes, cor, anexos, estrutura, metadados e residuais, pela ordem de dependência. Os passos que invalidam assinaturas ficam bloqueados, a menos que o chamador forneça autorização explícita

BuildPdfXProductionPreflight combina o resultado do perfil PDF/X com factos nativos de página e de imagem, análises estruturais de colourants e overprint e verificações de page boxes. Nunca descodifica nem copia payloads de imagens durante a análise de resolução

Output Formats

FormatShape
TextTexto simples com origem, hora de geração, nota de âmbito, sumário, linhas por standard, plano de ação, categorias de problemas e detalhes de problemas
HTMLRelatório HTML autónomo com estilização de estado, uma tabela de categorias de problemas, tabela de standards e tabela de problemas
MarkdownCabeçalhos e tabelas Markdown para standards, categorias de problemas, plano de ação e detalhes de problemas
JSONObjeto estruturado com format, sourceKind, summary, issueCategoryCounts e arrays de problemas por standard
CSVLinhas amigas de folhas de cálculo, identificadas por RowType: Summary, Standard, Category e Issue
SARIF 2.1.0Resultados de CI e code scanning com IDs de regras estáveis, níveis de gravidade, mensagens de remediação, propriedades e fingerprints parciais
JUnit XMLUm caso de teste por standard selecionado, com resultados Action required emitidos como falhas e resultados Review emitidos como casos ignorados
NDJSONUm objeto JSON de sumário, standard ou problema por linha, para ingestão incremental sem carregar um único documento JSON grande
XMLXML de preflight nativo com metadados do relatório, atributos de sumário, resultados por standard, gravidade, descrições e recomendações

Remarks

Example

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;

See Also

ValidatePdfA, ValidatePdfX