PDFium Delphi Component Docs

PageObjectsSnapshot プロパティ

コンポーネント: TPdf  ·  ユニット: PDFium
1 つのページ上の全オブジェクトのキャッシュされた上限付きスナップショットを管理レコードとして返します

構文

property PageObjectsSnapshot[PageNumber: Integer]: TPdfPageObjectsSnapshot; // read only

 

type TPdfPageObjectsSnapshot = record
  PageNumber: Integer;
  Width: Double;
  Height: Double;
  Status: TPdfPageObjectSnapshotStatus;
  Objects: TPdfPageObjectSnapshots;
end;

PageNumberInteger。読み込まれた文書内の 1 基点ページインデックス
StatusTPdfPageObjectSnapshotStatus。完了フラグ、訪問したオブジェクト数、到達した予算フラグ
Objects型、境界、変換行列、色、ダッシュ配列、パスとクリップのセグメント、コンテンツマーク、画像メタデータ、上限付きテキストを含むオブジェクトごとのレコード

説明

ページへの最初のアクセスは TPdfPageObjectSnapshotOptions.Default の予算でスナップショットを取得します。アクティブなページは読み込まれたハンドルを通じて読み取られ、他のページは PageNumber を変更せず OnPageChange も発火させずに一時的に読み込まれて閉じられます

すべてのアクセスはディープコピーを返すため、ネストされたダッシュ配列、マークパラメータ、パスセグメント、クリップパス、フィルタ、文字列を変更しても、キャッシュされたデータや文書は変更されません

完了したスナップショットは PageObjectSnapshotCacheCapacity で説明される上限付きキャッシュに保持され CacheBudgetBytes に対して計測されます。PageComplexity はオブジェクト型、パス数、画像ピクセル、透明性にこのキャッシュを再利用します

備考

アクティブな文書なしで呼び出すと EPdfError が発生し、1 から PageCount の範囲外の PageNumberIncorrect page number というメッセージ付きの EPdfError を発生させます

カスタムの取得予算や、キャッシュを意図的に迂回するには ReadPageObjectsSnapshot を使用してください

Snapshot := Pdf.PageObjectsSnapshot[PageNumber];
for I := 0 to High(Snapshot.Objects) do
  if Snapshot.Objects[I].ObjectType = otImage then
    LogImageObject(I);

関連項目

PageObjectSnapshotCacheCapacity, PageObjectSnapshotCacheCount, PageObjectSnapshots, PageObjectInfo, PageComplexity