PDFium Delphi Component Docs

FPdfPreflightReport 유닛

유닛: FPdfPreflightReport
내장 PDF 표준 검증기로 재사용·조회 가능한 보고서 객체를 만들고 텍스트, HTML, Markdown, JSON, CSV, SARIF 2.1.0, JUnit XML, NDJSON, 네이티브 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
TPdfPreflightStandardppsPdfA, ppsPdfUa, ppsPdfE, ppsPdfX, ppsPdfR, ppsPdfVT를 갖춘 표준 선택자
TPdfPreflightStandardsBuildPdfPreflightReport가 사용하는 집합 타입입니다. AllPdfPreflightStandards는 지원되는 모든 표준을 선택합니다
TPdfPreflightStatus표준별 상태입니다. pfsPass, pfsActionRequired, pfsReview
TPdfPreflightSeveritypsevInfo, psevWarning, psevError 문제 심각도이며, TPdfPreflightSeverities는 짝이 되는 필터 집합입니다
TPdfPreflightIssueStandardName, 문제 코드, 범주, 심각도, 설명, Recommendation을 담은 문제 행입니다. 대소문자를 구분하지 않는 MatchesText 검색과 StableKey 식별자도 제공합니다
TPdfPreflightIssueCategoryCountIssueCategoryCounts가 반환하는 집계된 문제 범주 행입니다
TPdfPreflightSeverityCountSeverityCounts가 반환하며 Severity, SeverityName, Count를 담은 집계 심각도 행입니다
TPdfPreflightIssueCodeCountIssueCodeCounts가 반환하며 StandardName, Code, Count를 담은 집계 표준·문제 코드 행입니다
TPdfPreflightStandardResultStandardName, ConformanceName, IsCompliant, StatusName, Priority, NextAction, Issues 배열, ErrorCount와 WarningCount 심각도 카운터, HighestSeverity, IssueCount, HasIssueCode 문제 코드 조회를 갖춘 표준 결과 하나입니다
TPdfPreflightReportSourceFile 이름, GeneratedAt 타임스탬프, ScopeNote, 표준 결과의 Results 배열, ActionRequiredStandardCount, CompliantStandardCount, NonCompliantStandardCount, PassedStandardCount, ReviewStandardCount, StandardCount, HighestSeverity, TotalIssueCount 요약 카운터, FilterByStandards, FilterByCategory, FilterBySeverities, SearchIssues, FlattenIssues, HasIssueCode, FindStandard, Fingerprint, IssueCategoryCounts, IssueCodeCounts, SeverityCounts 질의 헬퍼, 그리고 짝이 되는 SaveXxxToFile 프로시저를 갖춘 ToCsv, ToHtml, ToMarkdown, ToJson, ToNdjson, ToSarif, ToJUnitXml, ToText, ToXml 내보내기 헬퍼로 이루어진 완전한 보고서입니다
TPdfValidationRuleId와 Profile, Clause, 심각도, DependencyIds, FixHint 수리 지침, IssueCode, 그리고 PredicateKind가 고르는 issue·standard·custom Predicate를 갖춘 선언적 프로필 조항입니다
TPdfValidationBudget선택된 규칙 수(MaxRules), 보고되는 실패(MaxIssues), 방문 객체(MaxObjects), 재귀(MaxRecursionDepth), 증거 바이트(MaxEvidenceBytes), 예약 메모리(MaxMemoryBytes), 경과 시간(TimeoutMilliseconds)을 제한합니다
TPdfValidationOptionsProfiles와 Severities를 고르고 Budget를 공급하며 FastFail을 켜고 CancellationToken으로 협력적 취소를 지원합니다
TPdfValidationExecutionContext사용자 지정 술어에 전달되는 상한이 있는 실행 컨텍스트입니다. Create가 옵션을 저장하고 실행 시계를 시작하며, Checkpoint, ConsumeEvidence, ConsumeObjects, EnterRecursion, LeaveRecursion, ReserveMemory, ReleaseMemory가 예산을 강제하고, BudgetExceeded, BudgetReason, EvidenceBytes, ObjectsVisited, RecursionDepth, ReservedMemory, PeakReservedMemory, StartTick이 실시간 카운터를 노출합니다
TPdfValidationRuleRegistry스레드 안전 규칙 레지스트리입니다. Create와 Destroy가 임계 영역을 관리하고, RegisterRule과 Clear가 등록 집합을 바꾸며, Count와 Snapshot이 잠금 아래에서 읽고, Execute가 조항별 증거·타이밍으로 보고서를 검증합니다
TPdfBatchValidationOptionsWorkerCount, 표준, 중첩된 ValidationOptions, 문서 수준 FailFast, CancellationToken을 통한 취소를 제어합니다
TPdfBatchValidationReport입력 순서를 유지하는 문서별 결과에 문제 분포 집계, ElapsedMilliseconds, 최종 상태, WorkerCount, PassedDocumentCount, FailedDocumentCount, CancelledDocumentCount, ErrorDocumentCount 총계를 더한 것입니다
TPdfARepairPlan범주, 안전성, 재작성 필요성, 서명 영향, 차단 상태로 분류되는 의존성 순서의 수리 Steps입니다. DocumentHasSignatures, AllowSignatureInvalidation, BlockedStepCount, AutomaticStepCount, ManualStepCount 롤업, IsExecutable, ToJson JSON 출력을 갖춥니다
TPdfARepairCategory수리 작업을 parcSecurity, parcFonts, parcColour, parcAttachments, parcStructure, parcMetadata, parcOther로 분류합니다
TPdfARepairSafetyparsAutomatic, parsReviewRequired, parsManual
TPdfARepairStepOrder, 범주, IssueCode, 액션, Evidence, 의존성, Safety를 갖추고 RequiresFullRewrite, InvalidatesSignatures, Blocked를 더한 순서가 있는 수리 조치 하나입니다
TPdfXProductionPreflightOptionsMinimumImageDpi 기준, TreatTransparencyAsErrorBeforePdfX4, IncludeInformationalColourants 보고를 제어합니다
TPdfXProductionPreflightReportPDF/X Validation 결과에 페이지별 Pages 정보, HasOutputIntent, HasEmbeddedFonts, HasTransparency, HasOverprint, SeparationCount, DeviceNCount, MinimumEffectiveDpi, Issues 배열, ErrorCount, IsProductionReady, ToJson JSON 출력을 더한 것입니다
TPdfXProductionIssueKindpxpikOutputIntent, pxpikPageBox, pxpikFont, pxpikColourant, pxpikTransparency, pxpikOverprint, pxpikSeparation, pxpikImageResolution 문제를 분류합니다
TPdfXProductionIssueKind, 심각도, PageNumber, ObjectIndex, Evidence를 갖춘 집중된 프로덕션 발견 항목 하나입니다
TPdfXProductionPagePageNumber, HasMediaBox, HasTrimBox, HasBleedBox, HasArtBox, TextObjectCount, PathObjectCount, ImageCount, HasTransparency, MinimumEffectiveDpi의 페이지별 정보입니다
TPdfValidationPredicateKindpvpkIssueAbsent, pvpkStandardPass, pvpkCustom 규칙 평가를 선택합니다
TPdfValidationRuleStatuspvrrsPass, pvrrsFail, pvrrsSkipped, pvrrsError
TPdfValidationRunStatuspvrsComplete, pvrsFastFailed, pvrsBudgetExceeded, pvrsCancelled, pvrsError를 보고합니다
TPdfValidationRuleResultRuleId, Profile, Clause, 상태, Evidence, FixHint 수리 지침, ElapsedMilliseconds를 갖춘 규칙별 결과입니다
TPdfValidationRunResults 배열, PassedRuleCount, FailedRuleCount, SkippedRuleCount, ErrorRuleCount 카운터, ObjectsVisited, EvidenceBytes, PeakReservedMemory, ElapsedMilliseconds, IncompleteReason, 준수 헬퍼를 갖춘 상한이 있는 레지스트리 실행 하나입니다
TPdfPreflightIssues, TPdfPreflightStandardResults문제 행과 표준별 결과를 담는 동적 배열입니다
TPdfPreflightIssueCategoryCounts, TPdfPreflightSeverityCounts, TPdfPreflightIssueCodeCounts범주, 심각도, 안정적 문제 코드 집계기가 반환하는 동적 배열입니다
TPdfARepairStepsTPdfARepairPlan이 저장하는 의존성 순서의 PDF/A 수리 단계입니다
TPdfXProductionPages, TPdfXProductionIssues페이지별 프로덕션 정보와 집중된 PDF/X 프로덕션 문제입니다
TPdfValidationProfiles, TPdfValidationRules, TPdfValidationRuleResults선택된 프로필 이름, 등록된 선언적 규칙, 규칙별 실행 결과입니다
TPdfValidationRulePredicate상한이 있는 실행 컨텍스트로 보고서를 평가하고 진단 증거를 반환하는 사용자 지정 규칙 콜백입니다
TPdfBatchValidationItemStatus문서별 pbvisPending, pbvisPass, pbvisFail, pbvisCancelled, pbvisError 상태입니다
TPdfBatchValidationStatus배치 전체 pbvsComplete, pbvsPartial, pbvsCancelled, pbvsFailed 상태입니다
TPdfBatchValidationItemPreflight 보고서, 규칙 Validation 결과, 상태, ErrorMessage 텍스트, ElapsedMilliseconds를 갖춘 입력 파일 하나입니다
TPdfBatchValidationItems병렬 검증이 반환하는 입력 순서의 문서별 결과입니다

Description

BuildPdfPreflightReport는 활성 TPdf 문서에 대해 ValidatePdfA, ValidatePdfUa, ValidatePdfE, ValidatePdfX, ValidatePdfR, ValidatePdfVT를 호출하고 TPdfPreflightReport를 반환합니다

보고서에는 선택된 표준마다 감지된 적합성, 상태, 우선순위, 다음 조치, 문제 코드, 범주, Info / Warning / Error 심각도, 설명, 권고가 한 행씩 담깁니다. 상태, 심각도, 범주, 문제 코드 카운터가 재사용 가능한 요약 데이터를 노출합니다

FindStandard, HasIssueCode, FlattenIssues, SearchIssues, FilterByStandards, FilterBySeverities, FilterByCategory가 메모리 내 조회 뷰를 제공합니다. 필터링된 보고서는 독립적인 문제 배열을 반환하면서 원래의 적합성·상태 값을 유지합니다

Fingerprint는 순서가 있는 표준·문제 결과 집합의 소문자 SHA-256 식별자를 반환합니다. 소스 경로와 생성 타임스탬프는 의도적으로 제외되어, 동등한 검증 결과가 하나의 지문을 공유합니다

각 To* 내보내기에는 짝이 되는 Save*ToFile 메서드가 있습니다. 파일은 곧바로 UTF-8로 기록되고, CSV는 Excel 감지를 위해 BOM을 유지하며 수식으로 시작하는 셀을 중화합니다

TPdfValidationRuleRegistry는 모놀리식 표준 검증기 밖에서 선언적 프로필 조항을 실행합니다. 규칙은 앞선 조항에 의존하거나, 내장 issue·profile 술어를 고르거나, 상한이 있는 증거를 기록하는 사용자 지정 술어를 제공할 수 있습니다

TPdfValidationExecutionContext는 객체, 재귀, UTF-8 증거, 예약 메모리에 대한 협력적 checkpoint와 명시적 카운터를 제공합니다. 실행은 fast-fail, 취소, 예산 소진을 완전한 준수 결과가 아니라 미완료 상태로 보고합니다

ValidatePdfFilesParallel은 워커마다 비공개 TPdf 문서를 주고 입력 순서를 유지하며 문제 코드 수를 집계하고, 파일마다 통과·실패·취소·로드 오류를 독립적으로 기록합니다

PDFium은 문서 간에 스레드 안전하지 않으므로 워커들은 공유 잠금 아래 파일을 한 번에 하나씩 열고 검사하며, 병렬로 도는 것은 규칙 평가뿐입니다. 따라서 WorkerCount를 늘리면 문서 로딩이 아니라 규칙이 많은 레지스트리가 빨라집니다

BuildPdfARepairPlan은 PDF/A 증거를 의존성 순서의 보안, 폰트, 색, 첨부, 구조, 메타데이터, 잔여 단계로 사상합니다. 서명을 무효화하는 단계는 호출자가 명시적 승인을 주지 않으면 차단됩니다

BuildPdfXProductionPreflight는 PDF/X 프로필 결과에 네이티브 페이지·이미지 정보, 구조적 색재·검인 스캔, 페이지 박스 검사를 결합합니다. 해상도 분석 중에 이미지 페이로드를 디코딩하거나 복사하지 않습니다

Output Formats

FormatShape
Text일반 텍스트 소스, 생성 시각, 범위 노트, 요약, 표준 행, 조치 계획, 문제 범주, 문제 상세
HTML상태 스타일링, 문제 범주 표, 표준 표, 문제 표를 갖춘 독립 실행형 HTML 보고서
Markdown표준, 문제 범주, 조치 계획, 문제 상세를 위한 Markdown 제목과 표
JSONformat, sourceKind, summary, issueCategoryCounts, 표준별 문제 배열을 갖춘 구조화된 객체
CSVRowType으로 구분되는 스프레드시트 친화적 행입니다. Summary, Standard, Category, Issue
SARIF 2.1.0안정적인 규칙 ID, 심각도 수준, 수정 메시지, 속성, 부분 지문을 갖춘 CI 및 코드 스캐닝 결과
JUnit XML선택된 표준마다 테스트 케이스 하나씩이며, Action required 결과는 실패로, Review 결과는 건너뜀 케이스로 출력됩니다
NDJSON큰 JSON 문서 하나를 로드하지 않고 점진적으로 흡수할 수 있게 요약·표준·문제 JSON 객체를 줄마다 하나씩 담습니다
XML보고서 메타데이터, 요약 속성, 표준 결과, 심각도, 설명, 권고를 갖춘 네이티브 preflight XML

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