PDFium Delphi Component Docs

TPdfMatrix clase

Unidad: FPdfMatrix
Envoltura OO mutable en torno a la FS_MATRIX de PDFium para componer transformaciones del espacio de usuario PDF

Syntax

type TPdfMatrix = class ... end;

Related types

TipoDescripción
TPdfPointArrayArreglo dinámico de valores FS_POINTF usado por operaciones masivas de puntos
TPdfRectArrayArreglo dinámico de valores FS_RECTF usado 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 en sentido horario, inclinación, determinante y diagnósticos de reflexión que devuelve TryDecompose en los campos TranslationX, TranslationY, ScaleX, ScaleY, RotationDegrees, ShearDegrees, Determinant e IsReflected

Methods

MiembroDescripción
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 en sentido horario o antihorario en grados o radianes
NewSkewCrea una matriz con ángulos de inclinación X e Y separados
NewRectMappingCrea una matriz que estira, contiene o cubre un rectángulo de origen dentro de un rectángulo de destino
TryCreateRectMappingDevuelve un mapeo FS_MATRIX y rechaza entradas de tamaño cero, no finitas o desbordadas 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 una FS_MATRIX directa 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 quien llama
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 giro de un 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 conservando el componente lineal
ClearTranslationEstablece ambos elementos de traslación en cero
TryDecomposeExtrae traslación, escala con signo, rotación en sentido horario, inclinación, determinante y estado de reflexión cuando la matriz es no singular
MultiplyPosmultiplica por otra TPdfMatrix o por valores explícitos de a a f
PreMultiplyPremultiplica 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 separados
PreRotateAntepone una rotación en sentido horario o antihorario
PreSkewAntepone ángulos de inclinación X e Y separados
TranslateAnexa una traslación de deltaX y deltaY
ScaleAnexa factores de escala X e Y separados
RotateAnexa una rotación en sentido horario o antihorario en grados o radianes
HorizontalFlipAnexa un volteo respecto al eje X
VerticalFlipAnexa un volteo respecto al eje Y
CentralFlipAnexa ambos volteos, equivalente a una rotación de 180 grados sin trigonometría
SkewAnexa ángulos de inclinación X e Y separados
RotateAtAnexa una rotación alrededor de un pivote que permanece fijo
ScaleAtAnexa una escala alrededor de un pivote que permanece fijo
SkewAtAnexa una inclinación alrededor de un pivote que permanece fijo
HorizontalFlipAtAnexa un volteo horizontal alrededor de una coordenada X elegida por quien llama
VerticalFlipAtAnexa un volteo vertical alrededor de una coordenada Y elegida por quien llama
CentralFlipAtAnexa ambos volteos alrededor de un pivote elegido por quien llama
MapRectToRectAnexa un mapeo de estiramiento, contención o cobertura entre rectángulos normalizados
InvertReemplaza la matriz por su inversa o genera EPdfMatrixError cuando es singular
TryInvertReemplaza la matriz por su inversa y devuelve False sin mutarla cuando es singular o casi singular
TryGetInverseCalcula una FS_MATRIX inversa sin mutar esta instancia
InverseCopyCrea una matriz inversa independiente o genera EPdfMatrixError cuando es singular
TransformPointMapea una coordenada mediante la transformación afín usando la convención de vectores de fila de PDF
TransformVectorMapea una dirección solo por el componente lineal, de modo que la traslación se ignora
TryInverseTransformPointMapea un punto por la inversa sin asignar una matriz e informa una transformación singular como False
InverseTransformPointMapea un punto por la inversa o genera EPdfMatrixError cuando es singular
TransformQuadMapea los cuatro puntos de un valor FS_QUADPOINTSF
TransformPointsMapea un arreglo de puntos con una sola asignación de resultados
TransformPointsInPlaceMapea un arreglo de puntos en almacenamiento propio de quien llama sin asignar otro arreglo
TryTransformBoundsAcumula los límites de los puntos transformados en una pasada y devuelve False para una entrada vacía
TransformBoundsAcumula los límites de los puntos transformados en una pasada o genera EPdfMatrixError para una entrada vacía
TransformRectNormaliza y mapea un rectángulo mediante una vía rápida exacta alineada con los ejes o por límites ajustados de cuatro esquinas
TransformRectsMapea un arreglo de rectángulos con una sola asignación de resultados
TransformRectsInPlaceMapea un arreglo de rectángulos en almacenamiento propio de quien llama sin asignar otro arreglo

Properties

PropiedadTipoDescripción
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 directo 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 posmultiplica 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* agregan operaciones antes de la transformación actual, mientras que los auxiliares con pivote anexan secuencias de traslación-operación-traslación que mantienen fijo el pivote elegido

pmfContain conserva el rectángulo de origen completo con espacio sin usar centrado y pmfCover llena el destino con desbordamiento centrado, mientras que pmfStretch permite escalar X e Y de forma independiente

Los métodos masivos de puntos y rectángulos asignan un solo arreglo de salida, sus variantes en el lugar no asignan ninguno y TryTransformBounds examina los puntos transformados sin construir un arreglo intermedio

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