property PageObjectsSnapshot[PageNumber: Integer]: TPdfPageObjectsSnapshot; // read only
type TPdfPageObjectsSnapshot = record
PageNumber: Integer;
Width: Double;
Height: Double;
Status: TPdfPageObjectSnapshotStatus;
Objects: TPdfPageObjectSnapshots;
end;
| PageNumber | Integer. Índice de página basado en uno dentro del documento cargado |
| Status | TPdfPageObjectSnapshotStatus. Bandera de finalización, recuentos de objetos visitados y banderas de presupuesto que se alcanzaron |
| Objects | Registros por objeto con tipo, límites, transformación, colores, matrices de guiones, segmentos de trazado y de recorte, marcas de contenido, metadatos de imagen y texto acotado |
El primer acceso a una página captura la instantánea con los presupuestos de TPdfPageObjectSnapshotOptions.Default. La página activa se lee a través de sus manejadores cargados, y cualquier otra página se carga y se cierra de forma transitoria sin cambiar PageNumber ni disparar OnPageChange
Cada acceso devuelve una copia profunda, de modo que cambiar matrices de guiones anidadas, parámetros de marcas, segmentos de trazado, trazados de recorte, filtros o cadenas no puede modificar los datos en caché ni el documento
Las instantáneas completadas se retienen en la caché acotada descrita por PageObjectSnapshotCacheCapacity y se miden contra CacheBudgetBytes, y PageComplexity reutiliza esta caché para tipos de objetos, recuentos de trazados, píxeles de imagen y transparencia
Llamar sin un documento activo lanza EPdfError, y un PageNumber fuera del rango de uno a PageCount lanza EPdfError con el mensaje Incorrect page number
Use ReadPageObjectsSnapshot para presupuestos de captura personalizados o para omitir deliberadamente la caché
Snapshot := Pdf.PageObjectsSnapshot[PageNumber];
for I := 0 to High(Snapshot.Objects) do
if Snapshot.Objects[I].ObjectType = otImage then
LogImageObject(I);