PDFium Delphi Component Docs

API del contenuto di pagina avanzato

Componente: TPdf  ·  Unità: PDFium
Esamina e modifica il contenuto nativo delle pagine senza richiedere alle applicazioni di gestire handle PDFium o buffer bitmap

Page object inspection

PageObjectInfo restituisce un'istantanea TPdfPageObjectInfo contenente l'handle, il tipo di oggetto, i limiti normali e ruotati, la matrice effettiva, lo stato attivo, la trasparenza, i colori di riempimento e di tratteggio, i valori alpha, la larghezza del tratteggio, line join, line cap, dash array e dash phase

HasRotatedBounds, HasActiveState e gli altri campi Has* distinguono un valore nativo non disponibile da un valore zero valido

RotatedBounds porta il quadrilatero ruotato, HasLineJoin e HasLineCap abilitano gli stili di join e cap, e DashPhase sposta l'inizio del pattern di trattini

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 applica ogni campo selezionato allo stesso oggetto nativo e rigenera il contenuto della pagina una sola volta

TransformPageObject compone una FS_MATRIX affine con l'oggetto selezionato

Paths, clip paths, and Form XObjects

Content marks, glyphs, and native object helpers

Character inspection and index mapping

CharacterInfo restituisce i colori di riempimento e di tratteggio, il nome del font, i flag PDF del font, i limiti approssimati del glifo, la matrice effettiva e l'handle dell'oggetto di testo associato

CharacterIndexToTextIndex e TextIndexToCharacterIndex convertono tra gli indici di carattere di PDFium e gli indici nel flusso di testo generato

Annotation borders and appearance streams

TPdfAnnotation espone i raggi e la larghezza del bordo attraverso HasBorder, BorderHorizontalRadius, BorderVerticalRadius e BorderWidth

La copertura dei colori si estende a ColorAlpha, InteriorColor e InteriorColorAlpha, i metadati di markup sono controllati da HasAuthor, HasName, HasSubject, HasModificationDate, HasCreationDate e HasIcon, e i gesti ink, la geometria dei quad-point e le destinazioni dei collegamenti sono esposti attraverso InkList, HasAttachmentPoints, HasLinkUri e LinkUri

Gli appearance stream normal, rollover e down sono disponibili attraverso le sentinelle HasAppearanceNormal, HasAppearanceRollover e HasAppearanceDown e le corrispondenti stringhe AppearanceNormal, AppearanceRollover e AppearanceDown

Alla lettura di un'annotazione, queste sentinelle identificano il contenuto dell'aspetto non vuoto: l'API nativa restituisce la stessa stringa vuota per uno stream mancante e per uno stream vuoto, quindi entrambi riportano False e vengono lasciati intatti quando il record viene riscritto; il chiamante può comunque impostare esplicitamente una sentinella su True per scrivere un aspetto vuoto

Assegnare il record di annotazione aggiornato di nuovo a Annotation[Index] per scrivere i valori selezionati di bordo o aspetto

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 accetta una FS_MATRIX invertibile e un rettangolo di clipping in coordinate dispositivo

L'overload che riceve una TBitmap di proprietà del chiamante disegna direttamente in un DIB compatibile a 32 bit e ricade su una sola copia solo quando una bitmap PDFium esterna non può essere creata

Il rendering con matrice disegna il contenuto della pagina e le annotazioni non interattive selezionate tramite i render flag, ma non invoca il renderer overlay dei form-fill