PDFium Delphi Component Docs

TPdfMatrix Clase

Unidad: FPdfMatrix
Envoltorio OO mutable del FS_MATRIX de PDFium para componer transformaciones del espacio de usuario PDF

Syntax

type TPdfMatrix = class ... end;

Related types

TypeDescription
TPdfPointArrayMatriz dinámica de valores FS_POINTF usada por operaciones masivas de puntos
TPdfRectArrayMatriz dinámica de valores FS_RECTF usada por operaciones masivas de rectángulos
TPdfMatrixFitModePolítica de ajuste pmfStretch, pmfContain o pmfCover para el mapeo de rectángulos
TPdfMatrixDecompositionTraslación, escala con signo, rotación horaria, cizallamiento, determinante y diagnóstico de reflexión que devuelve TryDecompose en los campos TranslationX, TranslationY, ScaleX, ScaleY, RotationDegrees, ShearDegrees, Determinant y IsReflected

Methods

MemberDescription
CreateCrea una matriz identidad, una matriz de seis valores o una copia defensiva desde FS_MATRIX
NewTranslationCrea una nueva matriz de traslación
NewScaleCrea una nueva matriz de escala no uniforme
NewRotationCrea una matriz de rotación horaria o antihoraria en grados o radianes
NewSkewCrea una matriz con ángulos de cizallamiento X e Y independientes
NewRectMappingCrea una matriz que estira, contiene o cubre un rectángulo origen dentro de un rectángulo destino
TryCreateRectMappingDevuelve un mapeo FS_MATRIX y rechaza entradas de tamaño cero, no finitas o con desbordamiento sin asignar un objeto
ResetRestablece la matriz a la identidad
SetElementsReemplaza los seis elementos de la matriz en una sola llamada
AssignCopia otra TPdfMatrix o un FS_MATRIX crudo en esta instancia
CloneCrea una copia independiente del objeto
DeterminantDevuelve el determinante del componente lineal de 2 por 2
IsFiniteInforma si cada elemento es un valor Single finito
IsIdentityComprueba la identidad usando una tolerancia seleccionable por el llamador
IsInvertibleComprueba la invertibilidad finita y consciente de la escala sin calcular la inversa
IsTranslationOnlyComprueba si el componente lineal es la identidad
IsAxisAlignedComprueba si los rectángulos permanecen alineados con los ejes, incluidas las disposiciones de cuarto de vuelta dentro de la tolerancia
NearlyEqualsCompara con TPdfMatrix o FS_MATRIX usando una tolerancia
GetTranslationLee juntos los elementos de traslación X e Y
SetTranslationReemplaza la traslación X e Y preservando el componente lineal
ClearTranslationPone ambos elementos de traslación a cero
TryDecomposeExtrae traslación, escala con signo, rotación horaria, cizallamiento, determinante y estado de reflexión cuando la matriz es no singular
MultiplyPost-multiplica por otra TPdfMatrix o por valores explícitos de a a f
PreMultiplyPre-multiplica por otra TPdfMatrix o por una matriz explícita de seis valores
PreTranslateAntepone una traslación en el espacio de entrada local de la matriz
PreScaleAntepone factores de escala X e Y independientes
PreRotateAntepone una rotación horaria o antihoraria
PreSkewAntepone ángulos de cizallamiento X e Y independientes
TranslateAñade una traslación de deltaX y deltaY
ScaleAñade factores de escala X e Y independientes
RotateAñade una rotación horaria o antihoraria en grados o radianes
HorizontalFlipAñade un volteo del eje X
VerticalFlipAñade un volteo del eje Y
CentralFlipAñade ambos volteos de eje, equivalente a una rotación de 180 grados sin trigonometría
SkewAñade ángulos de cizallamiento X e Y independientes
RotateAtAñade una rotación alrededor de un pivote que permanece fijo
ScaleAtAñade una escala alrededor de un pivote que permanece fijo
SkewAtAñade un cizallamiento alrededor de un pivote que permanece fijo
HorizontalFlipAtAñade un volteo horizontal alrededor de una coordenada X elegida por el llamador
VerticalFlipAtAñade un volteo vertical alrededor de una coordenada Y elegida por el llamador
CentralFlipAtAñade ambos volteos alrededor de un pivote elegido por el llamador
MapRectToRectAñade un mapeo de estiramiento, contención o cobertura entre rectángulos normalizados
InvertReemplaza la matriz por su inversa o lanza EPdfMatrixError cuando es singular
TryInvertReemplaza la matriz por su inversa y devuelve False sin mutación cuando es singular o casi singular
TryGetInverseCalcula una FS_MATRIX inversa sin mutar esta instancia
InverseCopyCrea una matriz inversa independiente o lanza EPdfMatrixError cuando es singular
TransformPointMapea una coordenada a través de la transformación afín usando la convención de vectores fila de PDF
TransformVectorMapea una dirección solo a través del componente lineal, de modo que la traslación se ignora
TryInverseTransformPointMapea un punto a través de la inversa sin asignar una matriz e informa una transformación singular como False
InverseTransformPointMapea un punto a través de la inversa o lanza EPdfMatrixError cuando es singular
TransformQuadMapea los cuatro puntos de un valor FS_QUADPOINTSF
TransformPointsMapea una matriz de puntos con una sola asignación del resultado
TransformPointsInPlaceMapea una matriz de puntos en almacenamiento propiedad del llamador sin asignar otra matriz
TryTransformBoundsAcumula los límites transformados de los puntos en una pasada y devuelve False para entrada vacía
TransformBoundsAcumula los límites transformados de los puntos en una pasada o lanza EPdfMatrixError para entrada vacía
TransformRectNormaliza y mapea un rectángulo mediante una vía rápida exacta alineada con los ejes o mediante límites ajustados de cuatro esquinas
TransformRectsMapea una matriz de rectángulos con una sola asignación del resultado
TransformRectsInPlaceMapea una matriz de rectángulos en almacenamiento propiedad del llamador sin asignar otra matriz

Properties

PropertyTypeDescription
aSinglePrimer elemento de la matriz de solo lectura
bSingleSegundo elemento de la matriz de solo lectura
cSingleTercer elemento de la matriz de solo lectura
dSingleCuarto elemento de la matriz de solo lectura
eSingleElemento de traslación X de solo lectura
fSingleElemento de traslación Y de solo lectura
HandleFS_MATRIXValor de matriz crudo para las API de PDFium que aceptan FS_MATRIX o PFS_MATRIX

Description

TPdfMatrix usa la disposición afín de PDF a b c d e f y post-multiplica cada operación, de modo que las llamadas se leen en el mismo orden en que las transformaciones se aplican a los puntos

PreMultiply y los auxiliares Pre* añaden operaciones antes de la transformación actual, mientras que los auxiliares de pivote añaden secuencias de traslación-operación-traslación que mantienen fijo el pivote elegido

pmfContain preserva el rectángulo origen completo con el espacio no usado centrado y pmfCover llena el destino con el desbordamiento centrado, mientras que pmfStretch permite un escalado independiente de X e Y

Los métodos masivos de puntos y rectángulos asignan una matriz de salida, sus variantes in situ no asignan ninguna y TryTransformBounds examina los puntos transformados sin construir una matriz intermedia

Use Handle con API como FPDFPageObj_SetMatrix, FPDFPageObj_Transform y 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