PDFium Component Docs

TextPageSnapshot eigenschap

Component: TPdf  ·  Unit: PDFium
Geeft de gecachte begrensde tekstsnapshot van één pagina terug met paginatetekst, characterrecords en tekstobjectrecords

Syntax

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;

PageNumberInteger. Eén-gebaseerde pagina-index binnen het geladen document
StatusTPdfTextSnapshotStatus. Voltooiingsvlag, bezochte tellers, unmapped- en foutentellers en de bereikte budgetvlaggen
TextWString. Geëxtraheerde paginatetekst in native PDFium-volgorde
CharactersRecords per character met code point, indices, bounds, origin, hoek, fontgrootte, kleuren en matrixfeiten
TextObjectsRecords per tekstobject met characterbereiken, fontnaam, vlaggen, gewicht en rendermodus

Description

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

Remarks

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

Example

Snapshot := Pdf.TextPageSnapshot[PageNumber];
if Snapshot.Status.Completed then
  LogCharacterCount(Length(Snapshot.Characters));

See Also

TextSnapshotCacheCapacity, TextSnapshotCacheCount, Tekstpagina-snapshots, GetStructuredText, TPdfView.TextPage