コンテンツストリームのセマンティック比較

HPDFContentStream は、デコード済み PDF コンテンツを境界付きの正規イベントに正規化し、無害な直列化の選択を変更として扱うことなく、それらのイベントを比較できます

宣言

function HPDFNormalizeContentStreamGraphicsState(
  const Bytes: TBytes; out Canonical: TBytes;
  out Statistics: THPDFContentSemanticStatistics;
  NumberTolerance: Double = 1E-9;
  MaxOperations: Integer = 1000000;
  MaxCanonicalBytes: Int64 = 67108864
): boolean;

function HPDFCompareContentStreamsSemantic(
  const Left, Right: TBytes;
  out Info: THPDFContentSemanticCompareInfo;
  NumberTolerance: Double = 1E-9;
  MaxOperations: Integer = 1000000;
  MaxCanonicalBytes: Int64 = 67108864
): boolean;

正規化

診断と境界

THPDFContentSemanticStatistics は、トークン、操作、状態操作、冗長状態、正規化済みイベント、最大スタック深さ、正規バイト、エラーオフセット、有効性、制限情報を報告します。比較は、最初に異なる正規化済みイベントも報告します

不正な入れ子辞書オペランド、無効な状態オペレータの引数数、不一致または閉じていないグラフィックス状態スコープ、末尾オペランド、操作オーバーフロー、正規バイトオーバーフローは閉方向に失敗し、等価を報告しません

デコード済みコンテンツバイトを渡してください。ストリームフィルタのデコードと、異なるリソース辞書にわたるリソース名の整合は、呼び出し元の責任のままです