PDFium Delphi Component Docs

FPdfPreflightReport Unità

Unità: FPdfPreflightReport
Costruisce un oggetto report riutilizzabile e interrogabile a partire dai validatori predefiniti degli standard PDF ed esporta testo, HTML, Markdown, JSON, CSV, SARIF 2.1.0, JUnit XML, NDJSON o 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
TPdfPreflightStandardSelettore di standard con ppsPdfA, ppsPdfUa, ppsPdfE, ppsPdfX, ppsPdfR e ppsPdfVT
TPdfPreflightStandardsTipo insieme usato da BuildPdfPreflightReport; AllPdfPreflightStandards seleziona ogni standard supportato
TPdfPreflightStatusStato per standard: pfsPass, pfsActionRequired o pfsReview
TPdfPreflightSeveritySeverità dei problemi con psevInfo, psevWarning o psevError; TPdfPreflightSeverities è l'insieme di filtro corrispondente
TPdfPreflightIssueRiga di problema con StandardName, codice del problema, categoria, severità, descrizione e Recommendation, più la ricerca MatchesText senza distinzione di maiuscole e un'identità StableKey
TPdfPreflightIssueCategoryCountRiga aggregata per categoria di problema restituita da IssueCategoryCounts
TPdfPreflightSeverityCountRiga aggregata per severità restituita da SeverityCounts con Severity, SeverityName e Count
TPdfPreflightIssueCodeCountRiga aggregata per standard e codice di problema restituita da IssueCodeCounts con StandardName, Code e Count
TPdfPreflightStandardResultUn risultato per standard con StandardName, ConformanceName, IsCompliant, StatusName, Priority, NextAction, l'array Issues, i contatori di severità ErrorCount e WarningCount, HighestSeverity, IssueCount e la ricerca per codice di problema HasIssueCode
TPdfPreflightReportReport completo con il nome SourceFile, il timestamp GeneratedAt, lo ScopeNote, l'array Results dei risultati per standard, i contatori di sintesi ActionRequiredStandardCount, CompliantStandardCount, NonCompliantStandardCount, PassedStandardCount, ReviewStandardCount, StandardCount, HighestSeverity e TotalIssueCount, gli helper di query FilterByStandards, FilterByCategory, FilterBySeverities, SearchIssues, FlattenIssues, HasIssueCode, FindStandard, Fingerprint, IssueCategoryCounts, IssueCodeCounts e SeverityCounts, e gli helper di esportazione ToCsv, ToHtml, ToMarkdown, ToJson, ToNdjson, ToSarif, ToJUnitXml, ToText, ToXml con le corrispondenti procedure SaveXxxToFile
TPdfValidationRuleClausola dichiarativa di profilo con il suo Id e Profile, Clause, severità, DependencyIds, guida di riparazione FixHint, IssueCode e un Predicate di problema, standard o personalizzato scelto da PredicateKind
TPdfValidationBudgetLimita le regole selezionate (MaxRules), i fallimenti riportati (MaxIssues), gli oggetti visitati (MaxObjects), la ricorsione (MaxRecursionDepth), i byte di evidenza (MaxEvidenceBytes), la memoria riservata (MaxMemoryBytes) e il tempo trascorso (TimeoutMilliseconds)
TPdfValidationOptionsSeleziona Profiles e Severities, fornisce il Budget, attiva FastFail e supporta l'annullamento cooperativo tramite CancellationToken
TPdfValidationExecutionContextContesto di esecuzione limitato consegnato ai predicati personalizzati; Create memorizza le opzioni e avvia l'orologio dell'esecuzione, Checkpoint, ConsumeEvidence, ConsumeObjects, EnterRecursion, LeaveRecursion, ReserveMemory e ReleaseMemory applicano il budget, mentre BudgetExceeded, BudgetReason, EvidenceBytes, ObjectsVisited, RecursionDepth, ReservedMemory, PeakReservedMemory e StartTick espongono i contatori in tempo reale
TPdfValidationRuleRegistryRegistro di regole thread-safe; Create e Destroy gestiscono la sezione critica, RegisterRule e Clear modificano l'insieme registrato, Count e Snapshot lo leggono sotto lock, ed Execute valida un report con evidenze e temporizzazioni per clausola
TPdfBatchValidationOptionsControlla il WorkerCount, gli standard, le ValidationOptions annidate, il FailFast a livello di documento e l'annullamento tramite CancellationToken
TPdfBatchValidationReportRisultati per documento in ordine di input con distribuzioni aggregate dei problemi, ElapsedMilliseconds, stato terminale e i totali WorkerCount, PassedDocumentCount, FailedDocumentCount, CancelledDocumentCount e ErrorDocumentCount
TPdfARepairPlanSteps di riparazione ordinati per dipendenze e classificati per categoria, sicurezza, necessità di riscrittura, impatto sulle firme e stato di blocco, con i rollup DocumentHasSignatures, AllowSignatureInvalidation, BlockedStepCount, AutomaticStepCount e ManualStepCount, IsExecutable e output JSON ToJson
TPdfARepairCategoryClassifica il lavoro di riparazione come parcSecurity, parcFonts, parcColour, parcAttachments, parcStructure, parcMetadata o parcOther
TPdfARepairSafetyparsAutomatic, parsReviewRequired o parsManual
TPdfARepairStepUn'azione di riparazione ordinata con il suo Order, categoria, IssueCode, azione, Evidence, dipendenza e Safety, più RequiresFullRewrite, InvalidatesSignatures e Blocked
TPdfXProductionPreflightOptionsControlla la soglia MinimumImageDpi, TreatTransparencyAsErrorBeforePdfX4 e il riporto di IncludeInformationalColourants
TPdfXProductionPreflightReportRisultato di Validation PDF/X più le informazioni per pagina di Pages, HasOutputIntent, HasEmbeddedFonts, HasTransparency, HasOverprint, SeparationCount, DeviceNCount, MinimumEffectiveDpi, l'array Issues, ErrorCount, IsProductionReady e output JSON ToJson
TPdfXProductionIssueKindClassifica i problemi pxpikOutputIntent, pxpikPageBox, pxpikFont, pxpikColourant, pxpikTransparency, pxpikOverprint, pxpikSeparation e pxpikImageResolution
TPdfXProductionIssueUn riscontro di produzione mirato con il suo Kind, severità, PageNumber, ObjectIndex ed Evidence
TPdfXProductionPageInformazioni per pagina per PageNumber, HasMediaBox, HasTrimBox, HasBleedBox, HasArtBox, TextObjectCount, PathObjectCount, ImageCount, HasTransparency e MinimumEffectiveDpi
TPdfValidationPredicateKindSeleziona la valutazione delle regole pvpkIssueAbsent, pvpkStandardPass o pvpkCustom
TPdfValidationRuleStatuspvrrsPass, pvrrsFail, pvrrsSkipped o pvrrsError
TPdfValidationRunStatusRiporta pvrsComplete, pvrsFastFailed, pvrsBudgetExceeded, pvrsCancelled o pvrsError
TPdfValidationRuleResultRisultato per regola con RuleId, Profile, Clause, stato, Evidence, guida di riparazione FixHint ed ElapsedMilliseconds
TPdfValidationRunUna singola esecuzione limitata del registro con l'array Results, i contatori PassedRuleCount, FailedRuleCount, SkippedRuleCount e ErrorRuleCount, ObjectsVisited, EvidenceBytes, PeakReservedMemory, ElapsedMilliseconds, IncompleteReason e gli helper di conformità
TPdfPreflightIssues, TPdfPreflightStandardResultsArray dinamici che contengono le righe dei problemi e i risultati per standard
TPdfPreflightIssueCategoryCounts, TPdfPreflightSeverityCounts, TPdfPreflightIssueCodeCountsArray dinamici restituiti dagli aggregatori di categoria, severità e codici di problema stabili
TPdfARepairStepsPassi di riparazione PDF/A ordinati per dipendenze e memorizzati da TPdfARepairPlan
TPdfXProductionPages, TPdfXProductionIssuesInformazioni di produzione per pagina e problemi di produzione PDF/X mirati
TPdfValidationProfiles, TPdfValidationRules, TPdfValidationRuleResultsNomi dei profili selezionati, regole dichiarative registrate e risultati di esecuzione per regola
TPdfValidationRulePredicateCallback di regola personalizzata che valuta un report attraverso un contesto di esecuzione limitato e restituisce evidenze diagnostice
TPdfBatchValidationItemStatusStato per documento pbvisPending, pbvisPass, pbvisFail, pbvisCancelled o pbvisError
TPdfBatchValidationStatusStato dell'intero batch pbvsComplete, pbvsPartial, pbvsCancelled o pbvsFailed
TPdfBatchValidationItemUn file di input con il suo report Preflight, il risultato di Validation delle regole, lo stato, il testo ErrorMessage e ElapsedMilliseconds
TPdfBatchValidationItemsRisultati per documento in ordine di input restituiti dalla validazione parallela

Description

BuildPdfPreflightReport chiama ValidatePdfA, ValidatePdfUa, ValidatePdfE, ValidatePdfX, ValidatePdfR e ValidatePdfVT per un documento TPdf attivo e restituisce un TPdfPreflightReport

Il report contiene una riga per ogni standard selezionato, con conformità rilevata, stato, priorità, azione successiva, codice del problema, categoria, severità Info / Warning / Error, descrizione e raccomandazione. I contatori di stato, severità, categoria e codice di problema espongono dati di sintesi riutilizzabili

FindStandard, HasIssueCode, FlattenIssues, SearchIssues, FilterByStandards, FilterBySeverities e FilterByCategory forniscono viste di query in memoria. I report filtrati preservano i valori originali di conformità e stato restituendo array di problemi indipendenti

Fingerprint restituisce un'identità SHA-256 in minuscolo per l'insieme ordinato di risultati di standard e problemi. I percorsi sorgente e i timestamp di generazione sono esclusi deliberatamente, così che risultati di validazione equivalenti condividano un'unica fingerprint

Ogni esportazione To* ha un corrispondente metodo Save*ToFile. I file vengono scritti direttamente come UTF-8; il CSV conserva un BOM per il riconoscimento da parte di Excel e neutralizza le celle che iniziano con formule

TPdfValidationRuleRegistry esegue clausole dichiarative di profilo al di fuori dei validatori monolitici di standard. Le regole possono dipendere da clausole precedenti, selezionare un predicato predefinito di problema o profilo, oppure fornire un predicato personalizzato che registra evidenze limitate

TPdfValidationExecutionContext fornisce checkpoint cooperativi e contatori espliciti per oggetti, ricorsione, evidenze UTF-8 e memoria riservata. Un'esecuzione riporta fast-fail, annullamento o esaurimento del budget come stato incompleto anziché come risultato di conformità completo

ValidatePdfFilesParallel assegna a ogni worker un documento TPdf privato, preserva l'ordine di input, aggrega i conteggi dei codici di problema e registra pass, fallimento, annullamento o errori di caricamento indipendentemente per ogni file

PDFium non è thread-safe tra documenti diversi, quindi i worker aprono e ispezionano i file uno alla volta sotto un lock condiviso e mandano in parallelo solo la valutazione delle regole; un WorkerCount più grande accelera quindi i registry ricchi di regole anziché il caricamento dei documenti

BuildPdfARepairPlan mappa le evidenze PDF/A in passi di sicurezza, font, colore, allegati, struttura, metadati e residuali in ordine di dipendenze. I passi che invalidano le firme sono bloccati a meno che il chiamante fornisca un'autorizzazione esplicita

BuildPdfXProductionPreflight combina il risultato del profilo PDF/X con informazioni native su pagine e immagini, scansioni strutturali di coloranti e overprint e controlli delle page box. Non decodifica né copia mai i payload delle immagini durante l'analisi della risoluzione

Output Formats

FormatShape
TextSorgente in testo semplice, orario di generazione, nota di ambito, sintesi, righe per standard, piano d'azione, categorie di problemi e dettagli dei problemi
HTMLReport HTML autonomo con stile degli stati, una tabella delle categorie di problemi, una tabella degli standard e una tabella dei problemi
MarkdownTitoli e tabelle Markdown per standard, categorie di problemi, piano d'azione e dettagli dei problemi
JSONOggetto strutturato con format, sourceKind, summary, issueCategoryCounts e array di problemi per standard
CSVRighe adatte ai fogli di calcolo identificate da RowType: Summary, Standard, Category e Issue
SARIF 2.1.0Risultati per CI e code scanning con ID di regola stabili, livelli di severità, messaggi di risoluzione, proprietà e fingerprint parziali
JUnit XMLUn test case per standard selezionato, con i risultati Action required emessi come fallimenti e i risultati Review emessi come casi saltati
NDJSONUn oggetto JSON di sintesi, standard o problema per riga, per un'ingestione incrementale senza caricare un unico grande documento JSON
XMLXML nativo di preflight con metadati del report, attributi di sintesi, risultati per standard, severità, descrizioni e raccomandazioni

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