Preflight Reports
準拠性、ドキュメント検査、自動化
PDF/UA リーダープロファイルの選択
PDF/UA チェックは、XMP が pdfuaid:part=2 を示していれば part 2 を選択し、そうでなければ part 1 のチェックを維持します。ここで説明する従来の PDF/UA-1 チェックは、part 2 にもそのまま当てはまるとは限りません
PDF/UA-2 プロファイルは、識別情報・名前空間・ロール・構造のコアチェックを実装します。構造化レポートでは PDF/UA-2 と ISO 14289-2 を使用し、fullCertification=false と未検証の範囲を明示します
ターゲット part を強制するには CheckFilePDFUACompliance または RunPDFUAValidationPipelineTask を、対応範囲の上限を確認するには GetPDFUAReadValidationCoverageJSON を使用してください
概要
PDF Library for Delphi は外部 PDF に対して組み込みの PDF/A および PDF/UA-1 ファイル準拠チェックを実行し、結果を再利用可能なレポート出力へ変換できます。アプリケーションまたはビルドパイプラインが CheckFileCompliance と同じ診断を必要とし、文字列リストハンドルを直接管理したくない場合は、レポート API を使用します
レポートパイプラインは意図的に階層化されています。CheckFileCompliance は問題一覧のハンドルを返す低レベル API のままです。CreatePreflightReport は選択したチェックを安定したプレーンテキスト本文へ整形します。CreatePreflightReportEx は同じテキストレポートをテキスト、JSON、HTML、または CSV に変換するため、すべての形式で同じ合否状態と問題数が共有されます
ライブラリ API
| CheckFileCompliance | 選択した準拠性チェックを PDF ファイルに対して実行し、合格時は 0 を、問題の行を含む場合は StringListID を返します |
|---|---|
| CreatePreflightReport | PDF/A、PDF/UA-1、または両方の確認を実行し、ヘッダーメタデータ、確認ごとのセクション、および最終概要を含むプレーンテキストレポートを返します |
| CreatePreflightReportEx | 同じレポートをテキスト(0)、JSON(1)、HTML(2)、または CSV(3)形式で返します。不明な形式値はテキストにフォールバックします |
| SavePreflightReport | プレーンテキストレポートを UTF-8 で書き込み、必要に応じて親ディレクトリを作成します |
| SavePreflightReportEx | テキスト、JSON、HTML、または CSV レポートを UTF-8 で書き込み、必要に応じて親ディレクトリを作成します |
| ComparePreflightReports | 2 つのプレーンテキストレポートを比較し、変動する Generated: タイムスタンプ行を無視して、安定した内容が変化した場合にだけ簡潔な差分を返します |
形式の規約
| Text | 正規レポート本文。Generated、Input、Checks、Issue mode、選択した各確認のセクション、および Summary ブロックを含みます。このブロックには Total issues と Result が含まれます |
|---|---|
| JSON | title、generated、input、checks、issueMode、sections、summary を持つ単一オブジェクトです。各セクションには名前、状態、問題文字列配列があります |
| HTML | スタンドアロンの UTF-8 HTML ドキュメント。テキストレポートは HTML エスケープされ、整形済みブロック内に表示されるため、レポート内容はマークアップとして解釈されずに表示されます |
| CSV | 行は固定列 kind,section,status,code,message を使用します。meta 行はヘッダーフィールド、check 行はセクションの PASS/FAIL 状態、issue 行は数値問題コードとメッセージ、summary 行は最終合計を保持します |
準拠規格の選択
レポート API は ComplianceTests にビットマスクを使用します。1 は PDF/A、2 は PDF/UA-1、3 は両方を選択します。0 を渡した場合も両方のチェックを実行します。Options は現在ビット 1 を使用し、選択した各チェックを最初の問題後に停止します。報告されるすべての問題を収集するには 0 を渡します
コマンドラインデモ
Delphi の PreflightReport コンソールデモは、アプリケーション固有 UI を追加せずにレポートのワークフローを示します。単一 PDF の検証、書式付き出力の生成、新しいテキストレポートと基準との比較、またはディレクトリの一括処理が可能です
PreflightReport.exe --input "C:\PDFs\invoice.pdf" --output "C:\Reports\invoice.preflight.txt"
PreflightReport.exe --input "C:\PDFs\invoice.pdf" --output "C:\Reports\invoice.preflight.json" --json
PreflightReport.exe --input "C:\PDFs\invoice.pdf" --output "C:\Reports\invoice.preflight.csv" --format csv
PreflightReport.exe --input "C:\PDFs\invoice.pdf" --output "C:\Reports\invoice.preflight.txt" --compare "C:\Baselines\invoice.preflight.txt"
PreflightReport.exe --input-dir "C:\PDFs" --output-dir "C:\Reports" --recursive --format html
単一ファイルモードでは、選択したチェックで問題が報告されない場合は終了コード 0、コマンドラインまたは実行時エラーの場合は 1、問題が報告されたかベースライン比較に差異がある場合は 2 を返します。ディレクトリモードでは PDF ごとに <basename>.preflight.<ext> ファイルを 1 つ書き込み、ソースパス、合否状態、問題数、およびレポートパスを含む preflight-summary.csv ファイルを追加します
比較に関する注意事項
ComparePreflightReports はプレーンテキストレポート向けに定義されています。同じ実行のユーザー向け出力が JSON、HTML、CSV の場合でも、基準テキストレポートと新しく生成されたテキストレポートを渡してください。タイムスタンプは実行ごとに変化するため、比較処理は Generated: 行を正規化します。他の安定した行は、挿入と削除の差分を読みやすく保つ小さな先読みウィンドウを使用し、順番に比較されます
関連項目
CheckFileCompliance、CreatePreflightReport、CreatePreflightReportEx、SavePreflightReport、SavePreflightReportEx、ComparePreflightReports、GetPDFUADiagnostics