內容串流語意比較

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 回報語彙、運算、狀態運算、冗餘狀態、正規化事件、最大堆疊深度、正規位元組、錯誤偏移、有效性與限制資訊。比較也會回報第一個差異的正規化事件

格式錯誤的巢狀字典運算元、無效的狀態運算子參數目、未配對或未關閉的圖形狀態範圍、尾隨運算元、運算溢位與正規位元組溢位都會以失敗關閉,且絕不回報等效

傳入已解碼的內容位元組。串流篩選器解碼與跨不同資源字典的資源名稱協調仍由呼叫端負責