PDFium Delphi Component Docs

FPdfPreflightReport-enhet

Unit: FPdfPreflightReport
Bygger ett återanvändbart, frågbart rapportobjekt från de inbyggda PDF-standardvaliderarna och exporterar text, HTML, Markdown, JSON, CSV, SARIF 2.1.0, JUnit XML, NDJSON eller inbyggd XML

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
TPdfPreflightStandardStandardväljare med ppsPdfA, ppsPdfUa, ppsPdfE, ppsPdfX, ppsPdfR och ppsPdfVT
TPdfPreflightStandardsSettyp som används av BuildPdfPreflightReport; AllPdfPreflightStandards väljer alla standarder som stöds
TPdfPreflightStatusStatus per standard: pfsPass, pfsActionRequired eller pfsReview
TPdfPreflightSeverityAllvarlighetsgrad för problem med psevInfo, psevWarning eller psevError; TPdfPreflightSeverities är motsvarande filteruppsättning
TPdfPreflightIssueProblemrad med StandardName, problemkod, kategori, allvarlighetsgrad, beskrivning och Recommendation, plus skiftlägesokänslig sökning i MatchesText och en StableKey-identitet
TPdfPreflightIssueCategoryCountAggregerad problemkategorirad som returneras av IssueCategoryCounts
TPdfPreflightSeverityCountAggregerad allvarlighetsgradrad som returneras av SeverityCounts med Severity, SeverityName och Count
TPdfPreflightIssueCodeCountAggregerad standard- och problemkodrad som returneras av IssueCodeCounts med StandardName, Code och Count
TPdfPreflightStandardResultEtt standardresultat med StandardName, ConformanceName, IsCompliant, StatusName, Priority, NextAction, arrayen Issues, allvarlighetsgradsräknarna ErrorCount och WarningCount, HighestSeverity, IssueCount och problemkoduppslagningen HasIssueCode
TPdfPreflightReportKomplett rapport med SourceFile-namnet, tidsstämpeln GeneratedAt, ScopeNote, arrayen Results med standardresultat, sammanfattande räknare ActionRequiredStandardCount, CompliantStandardCount, NonCompliantStandardCount, PassedStandardCount, ReviewStandardCount, StandardCount, HighestSeverity och TotalIssueCount, frågehjälparna FilterByStandards, FilterByCategory, FilterBySeverities, SearchIssues, FlattenIssues, HasIssueCode, FindStandard, Fingerprint, IssueCategoryCounts, IssueCodeCounts och SeverityCounts samt exporthjälparna ToCsv, ToHtml, ToMarkdown, ToJson, ToNdjson, ToSarif, ToJUnitXml, ToText och ToXml med tillhörande SaveXxxToFile-procedurer
TPdfValidationRuleDeklarativ profilklausul med sin Id och Profile, Clause, allvarlighetsgrad, DependencyIds, repareringsvägledning i FixHint, IssueCode och ett problem-, standard- eller eget Predicate som väljs av PredicateKind
TPdfValidationBudgetBegränsar valda regler (MaxRules), rapporterade fel (MaxIssues), besökta objekt (MaxObjects), rekursion (MaxRecursionDepth), bevisbytes (MaxEvidenceBytes), reserverat minne (MaxMemoryBytes) och förfluten tid (TimeoutMilliseconds)
TPdfValidationOptionsVäljer Profiles och Severities, levererar Budget, aktiverar FastFail och stödjer kooperativ avbrytning via CancellationToken
TPdfValidationExecutionContextAvgränsad exekveringskontext som skickas till egna predikat; Create lagrar alternativen och startar körningsklockan, Checkpoint, ConsumeEvidence, ConsumeObjects, EnterRecursion, LeaveRecursion, ReserveMemory och ReleaseMemory framtvingar budgeten, och BudgetExceeded, BudgetReason, EvidenceBytes, ObjectsVisited, RecursionDepth, ReservedMemory, PeakReservedMemory och StartTick exponerar aktuella räknare
TPdfValidationRuleRegistryTrådsäkert regelregister; Create och Destroy hanterar den kritiska sektionen, RegisterRule och Clear muterar den registrerade uppsättningen, Count och Snapshot läser den under lås, och Execute validerar en rapport med bevis och tidsmätning per klausul
TPdfBatchValidationOptionsStyr WorkerCount, standarderna, nästlade ValidationOptions, FailFast på dokumentnivå samt avbrytning via CancellationToken
TPdfBatchValidationReportResultat per dokument i indataordning med aggregerade problemdistributioner, ElapsedMilliseconds, slutstatus och totalerna WorkerCount, PassedDocumentCount, FailedDocumentCount, CancelledDocumentCount och ErrorDocumentCount
TPdfARepairPlanÅtgärdsstegen Steps i beroendeordning, klassificerade efter kategori, säkerhet, omskrivningsbehov, signaturpåverkan och blockerande tillstånd, med summeringarna DocumentHasSignatures, AllowSignatureInvalidation, BlockedStepCount, AutomaticStepCount och ManualStepCount, IsExecutable och ToJson-JSON-utdata
TPdfARepairCategoryKlassificerar reparationsarbetet som parcSecurity, parcFonts, parcColour, parcAttachments, parcStructure, parcMetadata eller parcOther
TPdfARepairSafetyparsAutomatic, parsReviewRequired eller parsManual
TPdfARepairStepEn ordnad reparationsåtgärd med sin Order, kategori, IssueCode, åtgärd, Evidence, beroende och Safety, plus RequiresFullRewrite, InvalidatesSignatures och Blocked
TPdfXProductionPreflightOptionsStyr tröskeln MinimumImageDpi, TreatTransparencyAsErrorBeforePdfX4 och rapporteringen av IncludeInformationalColourants
TPdfXProductionPreflightReportPDF/X-Validation-resultat plus per-sida-fakta i Pages, HasOutputIntent, HasEmbeddedFonts, HasTransparency, HasOverprint, SeparationCount, DeviceNCount, MinimumEffectiveDpi, arrayen Issues, ErrorCount, IsProductionReady och ToJson-JSON-utdata
TPdfXProductionIssueKindKlassificerar problemen pxpikOutputIntent, pxpikPageBox, pxpikFont, pxpikColourant, pxpikTransparency, pxpikOverprint, pxpikSeparation och pxpikImageResolution
TPdfXProductionIssueEtt fokuserat produktionsfynd med sin Kind, allvarlighetsgrad, PageNumber, ObjectIndex och Evidence
TPdfXProductionPagePer-sida-fakta för PageNumber, HasMediaBox, HasTrimBox, HasBleedBox, HasArtBox, TextObjectCount, PathObjectCount, ImageCount, HasTransparency och MinimumEffectiveDpi
TPdfValidationPredicateKindVäljer regelutvärdering med pvpkIssueAbsent, pvpkStandardPass eller pvpkCustom
TPdfValidationRuleStatuspvrrsPass, pvrrsFail, pvrrsSkipped eller pvrrsError
TPdfValidationRunStatusRapporterar pvrsComplete, pvrsFastFailed, pvrsBudgetExceeded, pvrsCancelled eller pvrsError
TPdfValidationRuleResultResultat per regel med RuleId, Profile, Clause, status, Evidence, repareringsvägledning i FixHint och ElapsedMilliseconds
TPdfValidationRunEn avgränsad registerkörning med arrayen Results, räknarna PassedRuleCount, FailedRuleCount, SkippedRuleCount och ErrorRuleCount, ObjectsVisited, EvidenceBytes, PeakReservedMemory, ElapsedMilliseconds, IncompleteReason och efterlevnadshjälpare
TPdfPreflightIssues, TPdfPreflightStandardResultsDynamiska arrayer som håller problemrader och resultat per standard
TPdfPreflightIssueCategoryCounts, TPdfPreflightSeverityCounts, TPdfPreflightIssueCodeCountsDynamiska arrayer som returneras av aggregatorerna för kategori, allvarlighetsgrad och stabil problemkod
TPdfARepairStepsPDF/A-reparationssteg i beroendeordning som lagras av TPdfARepairPlan
TPdfXProductionPages, TPdfXProductionIssuesProduktionsfakta per sida och fokuserade PDF/X-produktionsproblem
TPdfValidationProfiles, TPdfValidationRules, TPdfValidationRuleResultsValda profilnamn, registrerade deklarativa regler och exekveringsresultat per regel
TPdfValidationRulePredicateEget regel-callback som utvärderar en rapport via en avgränsad exekveringskontext och returnerar diagnostiska bevis
TPdfBatchValidationItemStatusStatus per dokument: pbvisPending, pbvisPass, pbvisFail, pbvisCancelled eller pbvisError
TPdfBatchValidationStatusStatus för hela batchen: pbvsComplete, pbvsPartial, pbvsCancelled eller pbvsFailed
TPdfBatchValidationItemEn indatafil med sin Preflight-rapport, regelresultatet Validation, status, ErrorMessage-text och ElapsedMilliseconds
TPdfBatchValidationItemsResultat per dokument i indataordning som returneras av parallell validering

Description

BuildPdfPreflightReport anropar ValidatePdfA, ValidatePdfUa, ValidatePdfE, ValidatePdfX, ValidatePdfR och ValidatePdfVT för ett aktivt TPdf-dokument och returnerar en TPdfPreflightReport

Rapporten innehåller en rad per vald standard med upptäckt efterlevnad, status, prioritet, nästa åtgärd, problemkod, kategori, allvarlighetsgraden Info / Warning / Error, beskrivning och rekommendation. Räknare för status, allvarlighetsgrad, kategori och problemkod exponerar återanvändbar sammanfattningsdata

FindStandard, HasIssueCode, FlattenIssues, SearchIssues, FilterByStandards, FilterBySeverities och FilterByCategory tillhandahåller frågevyer i minnet. Filtrerade rapporter bevarar de ursprungliga efterlevnads- och statusvärdena samtidigt som de returnerar oberoende problemarrayer

Fingerprint returnerar en SHA-256-identitet i gemener för den ordnade uppsättningen standard- och problemresultat. Källsökvägar och genereringstidsstämplar är medvetet exkluderade så att likvärdiga valideringsresultat delar ett fingeravtryck

Varje To*-export har en motsvarande Save*ToFile-metod. Filer skrivs direkt som UTF-8; CSV behåller en BOM för Excel-detektering och neutraliserar celler som börjar med formel

TPdfValidationRuleRegistry exekverar deklarativa profilklausuler utanför de monolitiska standardvaliderarna. Regler kan bero på tidigare klausuler, välja en inbyggd problem- eller profilpredikat eller tillhandahålla en egen predikat som registrerar avgränsade bevis

TPdfValidationExecutionContext tillhandahåller kooperativa checkpoints och explicita räknare för objekt, rekursion, UTF-8-bevis och reserverat minne. En körning rapporterar fast-fail, avbrytning eller förbrukad budget som en ofullständig status snarare än ett komplett efterlevnadsresultat

ValidatePdfFilesParallel ger varje worker ett privat TPdf-dokument, bevarar indataordningen, aggregerar problemkodräknare och registrerar pass, fail, avbrytning eller läsfel oberoende för varje fil

PDFium är inte trådsäker över dokument, så arbetarna öppnar och granskar filer en i taget under ett delat lås och kör bara regelutvärderingen parallellt; ett större WorkerCount snabbar därför upp regeltyngda register i stället för dokumentinläsningen

BuildPdfARepairPlan mappar PDF/A-bevis till steg för säkerhet, typsnitt, färg, bilagor, struktur, metadata och rester i beroendeordning. Åtgärder som ogiltigförklarar signaturer blockeras om inte anroparen tillhandahåller explicit behörighet

BuildPdfXProductionPreflight kombinerar PDF/X-profilresultatet med nativa sid- och bildfakta, strukturella färgämnes- och overprint-skanningar samt kontroller av sidrutor. Den avkodar eller kopierar aldrig bildnyttolaster under analysen

Output Formats

FormatShape
TextKlartextkälla, genereringstid, scope-anteckning, sammanfattning, standardrader, åtgärdsplan, problemkategorier och problemdetaljer
HTMLSjälvständig HTML-rapport med statusstil, en problemkategoritabell, standardtabell och problemtabell
MarkdownMarkdown-rubriker och tabeller för standarder, problemkategorier, åtgärdsplan och problemdetaljer
JSONStrukturerat objekt med format, sourceKind, summary, issueCategoryCounts och problemarrayer per standard
CSVKalkylbladsvänliga rader identifierade av RowType: Summary, Standard, Category och Issue
SARIF 2.1.0CI- och kodskanningsresultat med stabila regel-ID:n, allvarlighetsgrader, åtgärdsmeddelanden, properties och partiella fingeravtryck
JUnit XMLEtt testfall per vald standard, där Action required-resultat genereras som fel och Review-resultat som överhoppade fall
NDJSONEtt sammanfattnings-, standard- eller problem-JSON-objekt per rad för inkrementell inläsning utan att behöva läsa in ett stort JSON-dokument
XMLInbyggd preflight-XML med rapportmetadata, sammanfattande attribut, standardresultat, allvarlighetsgrad, beskrivningar och rekommendationer

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