PDFium Delphi Component Docs

Sideobjekt-snapshots

Komponent: TPdf  ·  Enhed: PDFium
Fang sideobjekt-fakta ejet af kalderen én gang til analyse-, preflight- og eksportforbrugere uden at gemme native handles

Types

TPdfPageObjectSnapshotOptions = record ... end;

TPdfPageObjectSnapshotStatus = record ... end;

TPdfContentMarkSnapshot = record ... end;

TPdfPageObjectSnapshot = record ... end;

TPdfPageObjectsSnapshot = record ... end;

TPdfPageObjectSnapshot ejer hver streng og ethvert dynamisk array og indeholder intet FPDF_PAGEOBJECT-, FPDF_PAGEOBJECTMARK-, side-, font-, bitmap- eller text-page-handle

Almindelige fakta omfatter type, normal og RotatedBounds, matrix, aktiv tilstand, transparens, fyld- og stregfarver, alpha, stregbredde, line join og HasLineJoin, line cap og HasLineCap, dash-mønster med DashPhase samt marked-content-ID

Typespecifikke fakta omfatter sti- og clip-antal gennem PathSegmentCount, ClipPathCount og ClipPathSegmentCount med HasPathInfo- og HasClipPath-gate'ene, valgfri stigeometri og ClipPath-segmentarrayet, letvægts billedmetadata og filtre gennem HasImageInfo, valgfrie mark-ordbøger, tekst gennem HasText, fontnavne og -flag gennem HasFontInfo, vægt, FontSize med HasFontSize samt RenderMode med HasRenderMode

Hver valgfri native faktum har et matchende Has...-flag, så en utilgængelig værdi forbliver adskilt fra nul eller tomme data

Bounded read

function ReadPageObjectsSnapshot(PageNumber: Integer; const Options: TPdfPageObjectSnapshotOptions; out Status: TPdfPageObjectSnapshotStatus): TPdfPageObjectsSnapshot;

PageNumber er én-baseret, og læsning af en anden side bevarer det aktive TPdf.PageNumber

TPdfPageObjectSnapshotOptions.Default fanger almindelige fakta, sti- og clip-antal, billedmetadata og fontmetadata, mens payloads'ene IncludePathSegments, IncludeClipPaths, IncludeContentMarks og IncludeText forbliver deaktiverede

TPdfPageObjectSnapshotOptions.Full aktiverer stisegmenter, clip-stier, content marks og objekttekst under de samme eksplicitte budgetter

Budgetter dækker objektantal gennem MaxObjects, MaxPathSegments, MaxClipPathSegments, MaxMarkParams, MaxTextCharacters, MaxStringBytes samt forløbet tid gennem DeadlineMilliseconds; IncludeImageMetadata styrer letvægts billedfakta

Statussen rapporterer NativeObjectCount, ObjectsVisited, PathSegmentsVisited, ClipPathSegmentsVisited, MarksVisited, MarkParamsVisited, TextCharacters og StringBytes og sætter ObjectLimitReached, PathSegmentLimitReached, ClipPathSegmentLimitReached, MarkParamLimitReached, TextCharacterLimitReached, StringLimitReached eller DeadlineReached, når et budget trunkerer resultatet, mens MetadataFailureCount rapporterer utilgængelige native fakta uden at afbryde den resterende gennemløb

Revision-aware cache

property PageObjectsSnapshot[PageNumber: Integer]: TPdfPageObjectsSnapshot;

property PageObjectSnapshotCacheCapacity: Integer; // default 8

property PageObjectSnapshotCacheCount: Integer;

property PageObjectSnapshotCacheHitCount: Int64;

property PageObjectSnapshotCacheMissCount: Int64;

Den indekserede egenskab anvender standardindstillingerne og gemmer kun fuldstændige snapshots i en afgrænset least-recently-used-cache

Enhver returværdi er en dyb kopi ejet af kalderen, så ændringer af indlejrede dash-arrays, markparametre, stisegmenter, clip-stier, filtre eller strenge hverken kan ændre cachede data eller dokumentet

Sideredigeringer invaliderer den tilsvarende post, mens dokumentudskiftning og side-træ-ændringer rydder hele cachen

En kapacitet på nul deaktiverer gemning uden at deaktivere direkte afgrænsede læsninger

PageComplexity genbruger denne cache til objekttyper, stiantal, billedpixels og transparens

Example

var
  Snapshot: TPdfPageObjectsSnapshot;
  Obj: TPdfPageObjectSnapshot;
begin
  Pdf.PageObjectSnapshotCacheCapacity := 16;
  Snapshot := Pdf.PageObjectsSnapshot[1];
  if not Snapshot.Status.Completed then
    raise Exception.Create('Page object snapshot is incomplete');

  for Obj in Snapshot.Objects do
    if Obj.ObjectType = otImage then
      IndexImage(Obj.Bounds, Obj.ImageInfo);
end;

See Also

PageObjectInfo, PathInfo, PageObjectClipPath, Text page snapshots