THotPDF.RepairPDFA4 メソッド
上限付きのオブジェクトグラフトランザクションで決定論的な PDF/A-4 正規化を適用し、結果を検証して、安全な修復セット全体をコミットするか、元のドキュメント状態を復元します
宣言
function RepairPDFA4(
const Options: THPDFPDFA4RepairOptions;
out Report: THPDFPDFA4RepairReport;
out Issues: THPDFPDFA4ValidationIssues): boolean; overload;
function RepairPDFA4(
const Options: THPDFPDFA4RepairOptions;
out Report: THPDFPDFA4RepairReport;
out Issues: THPDFPDFA4ValidationIssues;
out Findings: THPDFComplianceFindings): boolean; overload;
コミット契約
Trueはトランザクションが受理されたことを意味します。すでに準拠しているドキュメントで変更がないケースも含みますFalseは、上限の超過、検証の退行、例外、RequireFullConformanceポリシー未達成のいずれかでトランザクションがロールバックしたことを意味しますReport.ValidationSucceededが、コミット済み修復後の権威あるフルコンフォーマンス結果です- デフォルトのオプションでは、無関係な安全でない検証上の発見事項を
IssuesとFindingsに明示したまま、安全な修復をコミットできます
安全な修復の境界
このメソッドは、PDF 2.0 ヘッダの正規化、欠落した trailer ID の作成、メタデータストリームとディクショナリの作成・修復、namespace URI による PDF/A 識別の正準化(合法な RDF 接頭辞は保持)、禁止された Catalog エントリの削除、alternate-presentation 構造の削除ができます
UTF-8 XMP 修復は、禁止された packet-header の byte / encoding 属性を取り除き、正準な PDF/A 識別 namespace を使い、part=4 と rev=2020 を書き込み、base・engineering・associated-file の正しい conformance プロパティを選択します
修復パイプラインは、ページや注釈のコンテンツストリーム、フォント、色空間、transparency、画像、描画オペレータ、抽出テキストを書き換えません
ロールバックと監査性
グラフスナップショットはディクショナリの変更とメタデータストリームのバイトをカバーするため、ロールバックは元のヘッダ、trailer 状態、オブジェクトグラフ、XMP payload、ページコンテンツを復元します
finding 共有オーバーロードは、修復アクション、applied・unresolved・failed・rolled-back のステータス、修復数、安定したルール識別子、条項、オブジェクトパス、オブジェクト番号、ページ位置を添付します
オブジェクト、変更、残存課題、デコードバイト、コンテンツトークンの各バジェットが、悪意あるファイルが修復やその検証ゲートを無限の作業に変えるのを防ぎます
例
var
Options: THPDFPDFA4RepairOptions;
Report: THPDFPDFA4RepairReport;
Issues: THPDFPDFA4ValidationIssues;
begin
Options := THPDFPDFA4RepairOptions.Default;
Options.Profile := p4pAutomatic;
if not PDF.RepairPDFA4(Options, Report, Issues) then
raise Exception.Create('PDF/A-4 repair rolled back');
if not Report.ValidationSucceeded then
LogRemainingPDFA4Issues(Issues);
end;