FS_MATRIX de PDFium para componer transformaciones del espacio de usuario PDFtype TPdfMatrix = class ... end;
| Type | Description |
|---|---|
TPdfPointArray | Matriz dinámica de valores FS_POINTF usada por operaciones masivas de puntos |
TPdfRectArray | Matriz dinámica de valores FS_RECTF usada por operaciones masivas de rectángulos |
TPdfMatrixFitMode | Política de ajuste pmfStretch, pmfContain o pmfCover para el mapeo de rectángulos |
TPdfMatrixDecomposition | Traslació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 |
| Member | Description |
|---|---|
Create | Crea una matriz identidad, una matriz de seis valores o una copia defensiva desde FS_MATRIX |
NewTranslation | Crea una nueva matriz de traslación |
NewScale | Crea una nueva matriz de escala no uniforme |
NewRotation | Crea una matriz de rotación horaria o antihoraria en grados o radianes |
NewSkew | Crea una matriz con ángulos de cizallamiento X e Y independientes |
NewRectMapping | Crea una matriz que estira, contiene o cubre un rectángulo origen dentro de un rectángulo destino |
TryCreateRectMapping | Devuelve un mapeo FS_MATRIX y rechaza entradas de tamaño cero, no finitas o con desbordamiento sin asignar un objeto |
Reset | Restablece la matriz a la identidad |
SetElements | Reemplaza los seis elementos de la matriz en una sola llamada |
Assign | Copia otra TPdfMatrix o un FS_MATRIX crudo en esta instancia |
Clone | Crea una copia independiente del objeto |
Determinant | Devuelve el determinante del componente lineal de 2 por 2 |
IsFinite | Informa si cada elemento es un valor Single finito |
IsIdentity | Comprueba la identidad usando una tolerancia seleccionable por el llamador |
IsInvertible | Comprueba la invertibilidad finita y consciente de la escala sin calcular la inversa |
IsTranslationOnly | Comprueba si el componente lineal es la identidad |
IsAxisAligned | Comprueba si los rectángulos permanecen alineados con los ejes, incluidas las disposiciones de cuarto de vuelta dentro de la tolerancia |
NearlyEquals | Compara con TPdfMatrix o FS_MATRIX usando una tolerancia |
GetTranslation | Lee juntos los elementos de traslación X e Y |
SetTranslation | Reemplaza la traslación X e Y preservando el componente lineal |
ClearTranslation | Pone ambos elementos de traslación a cero |
TryDecompose | Extrae traslación, escala con signo, rotación horaria, cizallamiento, determinante y estado de reflexión cuando la matriz es no singular |
Multiply | Post-multiplica por otra TPdfMatrix o por valores explícitos de a a f |
PreMultiply | Pre-multiplica por otra TPdfMatrix o por una matriz explícita de seis valores |
PreTranslate | Antepone una traslación en el espacio de entrada local de la matriz |
PreScale | Antepone factores de escala X e Y independientes |
PreRotate | Antepone una rotación horaria o antihoraria |
PreSkew | Antepone ángulos de cizallamiento X e Y independientes |
Translate | Añade una traslación de deltaX y deltaY |
Scale | Añade factores de escala X e Y independientes |
Rotate | Añade una rotación horaria o antihoraria en grados o radianes |
HorizontalFlip | Añade un volteo del eje X |
VerticalFlip | Añade un volteo del eje Y |
CentralFlip | Añade ambos volteos de eje, equivalente a una rotación de 180 grados sin trigonometría |
Skew | Añade ángulos de cizallamiento X e Y independientes |
RotateAt | Añade una rotación alrededor de un pivote que permanece fijo |
ScaleAt | Añade una escala alrededor de un pivote que permanece fijo |
SkewAt | Añade un cizallamiento alrededor de un pivote que permanece fijo |
HorizontalFlipAt | Añade un volteo horizontal alrededor de una coordenada X elegida por el llamador |
VerticalFlipAt | Añade un volteo vertical alrededor de una coordenada Y elegida por el llamador |
CentralFlipAt | Añade ambos volteos alrededor de un pivote elegido por el llamador |
MapRectToRect | Añade un mapeo de estiramiento, contención o cobertura entre rectángulos normalizados |
Invert | Reemplaza la matriz por su inversa o lanza EPdfMatrixError cuando es singular |
TryInvert | Reemplaza la matriz por su inversa y devuelve False sin mutación cuando es singular o casi singular |
TryGetInverse | Calcula una FS_MATRIX inversa sin mutar esta instancia |
InverseCopy | Crea una matriz inversa independiente o lanza EPdfMatrixError cuando es singular |
TransformPoint | Mapea una coordenada a través de la transformación afín usando la convención de vectores fila de PDF |
TransformVector | Mapea una dirección solo a través del componente lineal, de modo que la traslación se ignora |
TryInverseTransformPoint | Mapea un punto a través de la inversa sin asignar una matriz e informa una transformación singular como False |
InverseTransformPoint | Mapea un punto a través de la inversa o lanza EPdfMatrixError cuando es singular |
TransformQuad | Mapea los cuatro puntos de un valor FS_QUADPOINTSF |
TransformPoints | Mapea una matriz de puntos con una sola asignación del resultado |
TransformPointsInPlace | Mapea una matriz de puntos en almacenamiento propiedad del llamador sin asignar otra matriz |
TryTransformBounds | Acumula los límites transformados de los puntos en una pasada y devuelve False para entrada vacía |
TransformBounds | Acumula los límites transformados de los puntos en una pasada o lanza EPdfMatrixError para entrada vacía |
TransformRect | Normaliza y mapea un rectángulo mediante una vía rápida exacta alineada con los ejes o mediante límites ajustados de cuatro esquinas |
TransformRects | Mapea una matriz de rectángulos con una sola asignación del resultado |
TransformRectsInPlace | Mapea una matriz de rectángulos en almacenamiento propiedad del llamador sin asignar otra matriz |
| Property | Type | Description |
|---|---|---|
a | Single | Primer elemento de la matriz de solo lectura |
b | Single | Segundo elemento de la matriz de solo lectura |
c | Single | Tercer elemento de la matriz de solo lectura |
d | Single | Cuarto elemento de la matriz de solo lectura |
e | Single | Elemento de traslación X de solo lectura |
f | Single | Elemento de traslación Y de solo lectura |
Handle | FS_MATRIX | Valor de matriz crudo para las API de PDFium que aceptan FS_MATRIX o PFS_MATRIX |
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
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;