property TextPageSnapshot[PageNumber: Integer]: TPdfTextPageSnapshot; // read only
type TPdfTextPageSnapshot = record
PageNumber: Integer;
Width: Double;
Height: Double;
Status: TPdfTextSnapshotStatus;
Text: WString;
Characters: TPdfTextCharacterSnapshots;
TextObjects: TPdfTextObjectSnapshots;
end;
| PageNumber | Integer. Eén-gebaseerde pagina-index binnen het geladen document |
| Status | TPdfTextSnapshotStatus. Voltooiingsvlag, bezochte tellers, unmapped- en foutentellers en de bereikte budgetvlaggen |
| Text | WString. Geëxtraheerde paginatetekst in native PDFium-volgorde |
| Characters | Records per character met code point, indices, bounds, origin, hoek, fontgrootte, kleuren en matrixfeiten |
| TextObjects | Records per tekstobject met characterbereiken, fontnaam, vlaggen, gewicht en rendermodus |
De eerste toegang voor een pagina legt de snapshot vast met de budgetten van TPdfTextSnapshotOptions.Default: één miljoen characters, honderdduizend tekstobjecten en een fontnaambudget van 16 MiB. De actieve pagina wordt gelezen via zijn geladen handles, en elke andere pagina wordt transitief geladen en gesloten zonder PageNumber te wijzigen of OnPageChange te laten afgaan
Elke toegang geeft een diepe kopie terug, dus het wijzigen van een string of array in eigendom van de aanroeper kan de gecachte snapshot of de PDF niet aanpassen
Voltooide snapshots worden bewaard in de begrensde cache die TextSnapshotCacheCapacity beschrijft en gemeten tegen CacheBudgetBytes, en GetStructuredText plus de physical-layout-variant van GetTextInReadingOrder hergebruiken dezelfde snapshot
Aanroepen zonder actief document verhoogt EPdfError, en een PageNumber buiten één tot en met PageCount verhoogt EPdfError met de melding Incorrect page number
Gebruik ReadTextPageSnapshot voor aangepaste vastleggingsbudgetten of om de cache bewust te omzeilen
Snapshot := Pdf.TextPageSnapshot[PageNumber];
if Snapshot.Status.Completed then
LogCharacterCount(Length(Snapshot.Characters));