PDFium Delphi Component Docs

APIs de contenu de page avancées

Composant: TPdf  ·  Unit: PDFium
Inspecte et modifie le contenu de page natif sans obliger les applications à gérer les handles PDFium ni les tampons de bitmaps

Page object inspection

PageObjectInfo renvoie un instantané TPdfPageObjectInfo contenant le handle, le type d’objet, les limites normales et pivotées, la matrice effective, l’état actif, la transparence, les couleurs de remplissage et de tracé, les valeurs alpha, l’épaisseur de tracé, la jointure de ligne, la terminaison de ligne, le tableau de tirets et la phase de tirets

HasRotatedBounds, HasActiveState et les autres champs Has* distinguent une valeur native indisponible d’une valeur zéro valide

RotatedBounds porte le quadrilatère pivoté, HasLineJoin et HasLineCap conditionnent les styles de jointure et de terminaison, et DashPhase décale le début du motif de tirets

Batched page object editing

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 applique chaque champ sélectionné au même objet natif et régénère le contenu de la page une seule fois

TransformPageObject compose une FS_MATRIX affine avec l’objet sélectionné

Paths, clip paths, and Form XObjects

Content marks, glyphs, and native object helpers

Character inspection and index mapping

CharacterInfo renvoie les couleurs de remplissage et de tracé, le nom de police, les indicateurs de police PDF, les limites approximatives du glyphe, la matrice effective et le handle de l’objet texte associé

CharacterIndexToTextIndex et TextIndexToCharacterIndex convertissent entre les index de caractères PDFium et les index du flux de texte généré

Annotation borders and appearance streams

TPdfAnnotation expose les rayons et la largeur de bordure via HasBorder, BorderHorizontalRadius, BorderVerticalRadius et BorderWidth

La couverture des couleurs s’étend à ColorAlpha, InteriorColor et InteriorColorAlpha, les métadonnées de marquage sont conditionnées par HasAuthor, HasName, HasSubject, HasModificationDate, HasCreationDate et HasIcon, et les gestes d’encre, la géométrie des quadrilatères et les cibles de liens sont exposés via InkList, HasAttachmentPoints, HasLinkUri et LinkUri

Les flux d’apparence normal, survol et enfoncé sont disponibles via les sentinelles HasAppearanceNormal, HasAppearanceRollover et HasAppearanceDown et leurs chaînes correspondantes AppearanceNormal, AppearanceRollover et AppearanceDown

Lors de la lecture d’une annotation, ces sentinelles identifient un contenu d’apparence non vide : l’API native renvoie la même chaîne vide pour un flux absent et pour un flux vide, si bien que les deux signalent False et restent intacts lors de la réécriture de l’enregistrement ; l’appelant peut toujours positionner explicitement une sentinelle à True pour écrire une apparence vide

Réaffectez l’enregistrement d’annotation mis à jour à Annotation[Index] pour écrire les valeurs de bordure ou d’apparence sélectionnées

Native library, annotation, and form diagnostics

Thumbnails and affine page transforms

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 accepte une FS_MATRIX inversible et un rectangle de rognage en coordonnées périphériques

La surcharge qui reçoit un TBitmap possédé par l’appelant effectue le rendu directement dans une DIB 32 bits compatible et ne revient à une copie que lorsqu’un bitmap PDFium externe ne peut être créé

Le rendu matriciel dessine le contenu de la page et les annotations non interactives sélectionnées via les indicateurs de rendu, mais il n’invoque pas le moteur de superposition de remplissage de formulaires