PDFium Delphi Component Docs

FPdfPreflightReport ユニット

ユニット: FPdfPreflightReport
組み込みの PDF 規格バリデーターから再利用可能で照会できるレポートオブジェクトを構築し、テキスト、HTML、Markdown、JSON、CSV、SARIF 2.1.0、JUnit XML、NDJSON、またはネイティブ XML をエクスポートします

構文

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;

公開型

型説明
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 による問題コード照会を持つ 1 規格分の結果です
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 で選択される問題/規格/カスタムの 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 を持つ 1 つの順序付き修復アクションです
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 を持つ、1 つの焦点を絞った出力上の検出結果です
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、適合ヘルパーを持つ、1 回の上限付きレジストリ実行です
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 を持つ 1 つの入力ファイルです
TPdfBatchValidationItems並列検証が返す入力順のドキュメントごとの結果です

説明

BuildPdfPreflightReport はアクティブな TPdf ドキュメントに対して ValidatePdfA、ValidatePdfUa、ValidatePdfE、ValidatePdfX、ValidatePdfR、ValidatePdfVT を呼び出し、TPdfPreflightReport を返します

レポートには、選択された規格ごとに 1 行が含まれ、検出された適合、ステータス、優先度、次のアクション、問題コード、カテゴリ、Info / Warning / Error の重要度、説明、推奨事項が入ります。ステータス、重要度、カテゴリ、問題コードのカウンタが再利用可能なサマリーデータを公開します

FindStandard、HasIssueCode、FlattenIssues、SearchIssues、FilterByStandards、FilterBySeverities、FilterByCategory がメモリ内の照会ビューを提供します。フィルタ済みレポートは元の適合とステータス値を保持しながら、独立した問題配列を返します

Fingerprint は、順序付きの規格と問題の結果セットに対する小文字の SHA-256 識別情報を返します。ソースパスと生成タイムスタンプは意図的に除外されるため、等価な検証結果は同じフィンガープリントを共有します

各 To* エクスポートには対応する Save*ToFile メソッドがあります。ファイルは UTF-8 で直接書き込まれます。CSV は Excel の検出のために BOM を保持し、数式として解釈される先頭セルを無害化します

TPdfValidationRuleRegistry は、宣言的プロファイル節を一枚岩の規格バリデーターの外側で実行します。ルールは先行する節に依存でき、組み込みの問題またはプロファイル述語を選択できるほか、上限付きエビデンスを記録するカスタム述語を提供できます

TPdfValidationExecutionContext は、オブジェクト、再帰、UTF-8 エビデンス、予約メモリのための協調的チェックポイントと明示的なカウンタを提供します。実行は、完全な適合結果ではなく、fast-fail、キャンセル、予算枯渇を未完了ステータスとして報告します

ValidatePdfFilesParallel はワーカーごとにプライベートな TPdf ドキュメントを与え、入力順を保持し、問題コード数を集計し、合格、失敗、キャンセル、読み込みエラーをファイルごとに独立して記録します

PDFium はドキュメントをまたいでスレッドセーフではないため、ワーカーは共有ロックのもとでファイルを 1 件ずつ開いて検査し、並列に実行されるのはルール評価だけです。したがって WorkerCount を増やしても高速化するのはドキュメントの読み込みではなく、ルールが重いレジストリのほうです

BuildPdfARepairPlan は PDF/A のエビデンスを、依存順のセキュリティ、フォント、色、添付、構造、メタデータ、残余のステップへ写像します。署名を無効化するステップは、呼び出し側が明示的な認可を与えない限りブロックされます

BuildPdfXProductionPreflight は PDF/X プロファイルの結果を、ネイティブのページと画像の情報、構造的な色材とオーバープリントの走査、ページボックス検査と組み合わせます。解像度の分析中に画像ペイロードをデコードまたはコピーすることはありません

出力フォーマット

フォーマット構成
Textプレーンテキストのソース、生成時刻、スコープノート、サマリー、規格行、アクションプラン、問題カテゴリ、問題詳細です
HTMLステータス装飾、問題カテゴリテーブル、規格テーブル、問題テーブルを備えたスタンドアロン HTML レポートです
Markdown規格、問題カテゴリ、アクションプラン、問題詳細のための Markdown 見出しとテーブルです
JSONformat、sourceKind、summary、issueCategoryCounts、規格ごとの問題配列を持つ構造化オブジェクトです
CSVRowType: Summary、Standard、Category、Issue で識別される、表計算に適した行です
SARIF 2.1.0安定したルール ID、重要度レベル、修復メッセージ、プロパティ、部分フィンガープリントを持つ、CI とコードスキャン向けの結果です
JUnit XML選択された規格ごとに 1 つのテストケースで、Action required の結果は失敗として、Review の結果はスキップケースとして出力されます
NDJSON1 行ごとにサマリー、規格、または問題の JSON オブジェクトが並び、大きな JSON ドキュメントを読み込まずに増分取り込みできます
XMLレポートメタデータ、サマリー属性、規格結果、重要度、説明、推奨事項を持つネイティブの preflight XML です

備考

例

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;

関連項目

ValidatePdfA, ValidatePdfX