PDFium Delphi Component Docs

Fortgeschrittene Seiteninhalt-APIs

Komponente: TPdf  ·  Unit: PDFium
Prüft und bearbeitet nativen Seiteninhalt, ohne dass Anwendungen PDFium-Handles oder Bitmap-Puffer verwalten müssen

Prüfung von Seitenobjekten

PageObjectInfo gibt einen TPdfPageObjectInfo-Schnappschuss zurück, der Handle, Objekttyp, normale und gedrehte Begrenzungen, effektive Matrix, Aktivzustand, Transparenz, Füll- und Strichfarben, Alpha-Werte, Strichbreite, Line-Join, Line-Cap, Dash-Array und Dash-Phase enthält

HasRotatedBounds, HasActiveState und die anderen Has*-Felder unterscheiden einen nicht verfügbaren nativen Wert von einem gültigen Nullwert

RotatedBounds trägt das gedrehte Viereck, HasLineJoin und HasLineCap schalten die Join- und Cap-Stile frei, und DashPhase verschiebt den Start des Dash-Musters

Stapelweise Seitenobjekt-Bearbeitung

Info := Pdf1.PageObjectInfo(0);
Info.StrokeWidth := 4;
SetLength(Info.DashArray, 2);
Info.DashArray[0] := 8;
Info.DashArray[1] := 4;
Pdf1.UpdatePageObject(0, Info, [pocStrokeWidth, pocDashPattern]);

UpdatePageObject wendet jedes ausgewählte Feld auf dasselbe native Objekt an und erzeugt den Seiteninhalt einmal neu

TransformPageObject kombiniert eine affine FS_MATRIX mit dem ausgewählten Objekt

Pfade, Clip-Pfade und Form-XObjects

Inhalts-Marks, Glyphen und Helfer für native Objekte

Zeichenprüfung und Indexabbildung

CharacterInfo gibt Füll- und Strichfarben, den Schriftartnamen, PDF-Font-Flags, lose Glyphengrenzen, die effektive Matrix und das zugeordnete Textobjekt-Handle zurück

CharacterIndexToTextIndex und TextIndexToCharacterIndex wandeln zwischen PDFium-Zeichenindizes und Indizes im erzeugten Textstrom um

Anmerkungs-Rahmen und Appearance-Streams

TPdfAnnotation legt Rahmenradien und -breite über HasBorder, BorderHorizontalRadius, BorderVerticalRadius und BorderWidth offen

Die Farbabdeckung umfasst ColorAlpha, InteriorColor und InteriorColorAlpha, Markup-Metadaten werden von HasAuthor, HasName, HasSubject, HasModificationDate, HasCreationDate und HasIcon geschützt, und Tintengesten, Vierecksgeometrie und Linkziele werden über InkList, HasAttachmentPoints, HasLinkUri und LinkUri offengelegt

Normale, Rollover- und Down-Appearance-Streams sind über die Sentinel-Werte HasAppearanceNormal, HasAppearanceRollover und HasAppearanceDown sowie die zugehörigen Strings AppearanceNormal, AppearanceRollover und AppearanceDown verfügbar

Beim Lesen einer Annotation melden diese Sentinel-Werte nicht leeren Appearance-Inhalt: Die native API liefert für einen fehlenden Stream und einen leeren Stream dieselbe leere Zeichenkette, daher melden beide False und bleiben beim Zurückschreiben des Records unangetastet; ein Sentinel lässt sich weiterhin ausdrücklich auf True setzen, um eine leere Appearance zu schreiben

Weisen Sie den aktualisierten Anmerkungs-Record wieder Annotation[Index] zu, um ausgewählte Rahmen- oder Appearance-Werte zu schreiben

Diagnose für native Bibliothek, Anmerkungen und Formulare

Miniaturansichten und affine Seitentransformationen

Matrix-Rendering

Matrix.a := 0.5;
Matrix.b := 0;
Matrix.c := 0;
Matrix.d := -0.5;
Matrix.e := 0;
Matrix.f := 421;
Clip.Left := 0;
Clip.Top := 0;
Clip.Right := 300;
Clip.Bottom := 421;
Bitmap := Pdf1.RenderPageWithMatrix(300, 421, Matrix, Clip);

RenderPageWithMatrix akzeptiert eine invertierbare FS_MATRIX und ein Clipping-Rechteck in Gerätekoordinaten

Die Überladung, die eine TBitmap im Eigentum des Aufrufers entgegennimmt, rendert direkt in eine kompatible 32-Bit-DIB und fällt nur dann auf eine Kopie zurück, wenn keine externe PDFium-Bitmap erzeugt werden kann

Matrix-Rendering zeichnet Seiteninhalt und nicht interaktive Anmerkungen, die über Render-Flags ausgewählt wurden, ruft jedoch den Form-Fill-Overlay-Renderer nicht auf