property PageObjectsSnapshot[PageNumber: Integer]: TPdfPageObjectsSnapshot; // read only
type TPdfPageObjectsSnapshot = record
PageNumber: Integer;
Width: Double;
Height: Double;
Status: TPdfPageObjectSnapshotStatus;
Objects: TPdfPageObjectSnapshots;
end;
| PageNumber | Integer。読み込まれた文書内の 1 基点ページインデックス |
| Status | TPdfPageObjectSnapshotStatus。完了フラグ、訪問したオブジェクト数、到達した予算フラグ |
| Objects | 型、境界、変換行列、色、ダッシュ配列、パスとクリップのセグメント、コンテンツマーク、画像メタデータ、上限付きテキストを含むオブジェクトごとのレコード |
ページへの最初のアクセスは TPdfPageObjectSnapshotOptions.Default の予算でスナップショットを取得します。アクティブなページは読み込まれたハンドルを通じて読み取られ、他のページは PageNumber を変更せず OnPageChange も発火させずに一時的に読み込まれて閉じられます
すべてのアクセスはディープコピーを返すため、ネストされたダッシュ配列、マークパラメータ、パスセグメント、クリップパス、フィルタ、文字列を変更しても、キャッシュされたデータや文書は変更されません
完了したスナップショットは PageObjectSnapshotCacheCapacity で説明される上限付きキャッシュに保持され CacheBudgetBytes に対して計測されます。PageComplexity はオブジェクト型、パス数、画像ピクセル、透明性にこのキャッシュを再利用します
アクティブな文書なしで呼び出すと EPdfError が発生し、1 から PageCount の範囲外の PageNumber は Incorrect 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);