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;

コミット契約

安全な修復の境界

このメソッドは、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;

関連 API