PDFium Delphi Component Docs

TPdfMatrix Classe

Unità: FPdfMatrix
Wrapper OO mutabile attorno alla FS_MATRIX di PDFium per comporre trasformazioni nello spazio utente PDF

Syntax

type TPdfMatrix = class ... end;

Related types

TypeDescription
TPdfPointArrayArray dinamico di valori FS_POINTF usato dalle operazioni in blocco sui punti
TPdfRectArrayArray dinamico di valori FS_RECTF usato dalle operazioni in blocco sui rettangoli
TPdfMatrixFitModePolitica di adattamento pmfStretch, pmfContain o pmfCover per la mappatura dei rettangoli
TPdfMatrixDecompositionDiagnostica di traslazione, scala con segno, rotazione in senso orario, shear, determinante e riflessione restituita da TryDecompose nei campi TranslationX, TranslationY, ScaleX, ScaleY, RotationDegrees, ShearDegrees, Determinant e IsReflected

Methods

MemberDescription
CreateCrea una matrice identità, una matrice a sei valori o una copia difensiva da FS_MATRIX
NewTranslationCrea una nuova matrice di traslazione
NewScaleCrea una nuova matrice di scala non uniforme
NewRotationCrea una matrice di rotazione in senso orario o antiorario in gradi o radianti
NewSkewCrea una matrice con angoli di shear separati per X e Y
NewRectMappingCrea una matrice che allarga, contiene o copre un rettangolo sorgente entro un rettangolo di destinazione
TryCreateRectMappingRestituisce una mappatura FS_MATRIX e rifiuta input di dimensione zero, non finiti o in overflow senza allocare un oggetto
ResetRiporta la matrice all'identità
SetElementsSostituisce tutti e sei gli elementi della matrice in una sola chiamata
AssignCopia un'altra TPdfMatrix o una FS_MATRIX grezza in questa istanza
CloneCrea una copia indipendente dell'oggetto
DeterminantRestituisce il determinante della componente lineare 2 per 2
IsFiniteIndica se ogni elemento è un valore Single finito
IsIdentityVerifica l'identità usando una tolleranza selezionabile dal chiamante
IsInvertibleVerifica l'invertibilità finita e consapevole della scala senza calcolare un'inversa
IsTranslationOnlyVerifica se la componente lineare è l'identità
IsAxisAlignedVerifica se i rettangoli restano allineati agli assi, incluse le disposizioni a quarto di giro entro la tolleranza
NearlyEqualsConfronta con una TPdfMatrix o una FS_MATRIX usando una tolleranza
GetTranslationLegge insieme gli elementi di traslazione X e Y
SetTranslationSostituisce la traslazione X e Y preservando la componente lineare
ClearTranslationImposta a zero entrambi gli elementi di traslazione
TryDecomposeEstrae traslazione, scala con segno, rotazione in senso orario, shear, determinante e stato di riflessione quando la matrice non è singolare
MultiplyMoltiplica a destra per un'altra TPdfMatrix o per valori espliciti da a a f
PreMultiplyMoltiplica a sinistra per un'altra TPdfMatrix o per una matrice esplicita a sei valori
PreTranslateAntepone una traslazione nello spazio di ingresso locale della matrice
PreScaleAntepone fattori di scala separati per X e Y
PreRotateAntepone una rotazione in senso orario o antiorario
PreSkewAntepone angoli di shear separati per X e Y
TranslateAggiunge in coda una traslazione di deltaX e deltaY
ScaleAggiunge in coda fattori di scala separati per X e Y
RotateAggiunge in coda una rotazione in senso orario o antiorario in gradi o radianti
HorizontalFlipAggiunge in coda un ribaltamento lungo l'asse X
VerticalFlipAggiunge in coda un ribaltamento lungo l'asse Y
CentralFlipAggiunge in coda entrambi i ribaltamenti degli assi, equivalente a una rotazione di 180 gradi senza trigonometria
SkewAggiunge in coda angoli di shear separati per X e Y
RotateAtAggiunge in coda una rotazione attorno a un perno che resta fisso
ScaleAtAggiunge in coda una scala attorno a un perno che resta fisso
SkewAtAggiunge in coda uno shear attorno a un perno che resta fisso
HorizontalFlipAtAggiunge in coda un ribaltamento orizzontale attorno a una coordinata X selezionata dal chiamante
VerticalFlipAtAggiunge in coda un ribaltamento verticale attorno a una coordinata Y selezionata dal chiamante
CentralFlipAtAggiunge in coda entrambi i ribaltamenti attorno a un perno selezionato dal chiamante
MapRectToRectAggiunge in coda una mappatura stretch, contain o cover tra rettangoli normalizzati
InvertSostituisce la matrice con la sua inversa o solleva EPdfMatrixError quando è singolare
TryInvertSostituisce la matrice con la sua inversa e restituisce False senza mutazioni quando è singolare o quasi singolare
TryGetInverseCalcola una FS_MATRIX inversa senza mutare questa istanza
InverseCopyCrea una matrice inversa indipendente o solleva EPdfMatrixError quando è singolare
TransformPointMappa una coordinata attraverso la trasformazione affine usando la convenzione dei vettori riga del PDF
TransformVectorMappa una direzione attraverso la sola componente lineare, così la traslazione viene ignorata
TryInverseTransformPointMappa un punto attraverso l'inversa senza allocare una matrice e riporta una trasformazione singolare come False
InverseTransformPointMappa un punto attraverso l'inversa o solleva EPdfMatrixError quando è singolare
TransformQuadMappa tutti e quattro i punti di un valore FS_QUADPOINTSF
TransformPointsMappa un array di punti con una sola allocazione del risultato
TransformPointsInPlaceMappa un array di punti in memoria di proprietà del chiamante senza allocare un altro array
TryTransformBoundsAccumula i limiti dei punti trasformati in un solo passaggio e restituisce False per input vuoto
TransformBoundsAccumula i limiti dei punti trasformati in un solo passaggio o solleva EPdfMatrixError per input vuoto
TransformRectNormalizza e mappa un rettangolo attraverso un percorso veloce esatto allineato agli assi o limiti stretti a quattro angoli
TransformRectsMappa un array di rettangoli con una sola allocazione del risultato
TransformRectsInPlaceMappa un array di rettangoli in memoria di proprietà del chiamante senza allocare un altro array

Properties

PropertyTypeDescription
aSinglePrimo elemento della matrice in sola lettura
bSingleSecondo elemento della matrice in sola lettura
cSingleTerzo elemento della matrice in sola lettura
dSingleQuarto elemento della matrice in sola lettura
eSingleElemento di traslazione X in sola lettura
fSingleElemento di traslazione Y in sola lettura
HandleFS_MATRIXValore grezzo della matrice per le API PDFium che accettano FS_MATRIX o PFS_MATRIX

Description

TPdfMatrix usa il layout affine del PDF a b c d e f e moltiplica a destra ogni operazione, quindi le chiamate si leggono nello stesso ordine delle trasformazioni applicate ai punti

PreMultiply e gli helper Pre* aggiungono operazioni prima della trasformazione corrente, mentre gli helper con perno aggiungono in coda sequenze traslazione-operazione-traslazione che mantengono fisso il perno scelto

pmfContain preserva l'intero rettangolo sorgente con spazio inutilizzato centrato e pmfCover riempie la destinazione con l'overflow centrato, mentre pmfStretch consente scalature indipendenti di X e Y

I metodi in blocco su punti e rettangoli allocano un solo array di output, le loro varianti in-place non allocano nulla, e TryTransformBounds analizza i punti trasformati senza costruire un array intermedio

Usare Handle con API come FPDFPageObj_SetMatrix, FPDFPageObj_Transform e FPDFText_SetMatrix

Example

var
  Matrix: TPdfMatrix;
begin
  Matrix := TPdfMatrix.Create;
  Matrix.ScaleAt(0.5, 0.5, 144, 144);
  Matrix.RotateAt(15, 144, 144);
  Matrix.Translate(72, 72);
  FPDFPageObj_SetMatrix(ObjectHandle, @Matrix.Handle);
end;

See Also

TPdf.CreateXObjectFromPage, TPdf.InsertFormObjectFromXObject