PDFium Delphi Component Docs

TPdfMatrix 클래스

유닛: FPdfMatrix
PDF 사용자 공간 변환을 합성하기 위한 PDFium FS_MATRIX 주변의 가변 OO 래퍼입니다

Syntax

type TPdfMatrix = class ... end;

Related types

TypeDescription
TPdfPointArray대량 점 연산에 쓰이는 FS_POINTF 값의 동적 배열
TPdfRectArray대량 사각형 연산에 쓰이는 FS_RECTF 값의 동적 배열
TPdfMatrixFitMode사각형 매핑을 위한 pmfStretch, pmfContain, pmfCover 피팅 정책
TPdfMatrixDecompositionTryDecompose가 TranslationX, TranslationY, ScaleX, ScaleY, RotationDegrees, ShearDegrees, Determinant, IsReflected 필드로 반환하는 이동, 부호 있는 스케일, 시계 방향 회전, 전단, 행렬식, 반사 진단 정보

Methods

MemberDescription
Create단위 행렬, 여섯 값 행렬, 또는 FS_MATRIX로부터의 방어적 복사본을 만듭니다
NewTranslation새 이동 행렬을 만듭니다
NewScale새 비균등 스케일 행렬을 만듭니다
NewRotation도 또는 라디안 단위로 시계 또는 반시계 방향 회전 행렬을 만듭니다
NewSkewX와 Y 전단 각이 분리된 행렬을 만듭니다
NewRectMapping원본 사각형을 대상 사각형 안에 늘리거나 맞추거나 덮는 행렬을 만듭니다
TryCreateRectMappingFS_MATRIX 매핑을 반환하고 크기가 0이거나 유한하지 않거나 오버플로하는 입력은 객체를 할당하지 않고 거부합니다
Reset행렬을 단위 행렬로 되돌립니다
SetElements여섯 행렬 요소를 한 번의 호출로 교체합니다
Assign다른 TPdfMatrix나 raw FS_MATRIX를 이 인스턴스로 복사합니다
Clone독립적인 객체 복사본을 만듭니다
Determinant선형 2 by 2 성분의 행렬식을 반환합니다
IsFinite모든 요소가 유한한 Single 값인지 보고합니다
IsIdentity호출자가 고른 허용 오차로 단위 행렬인지 검사합니다
IsInvertible역행렬을 계산하지 않고 유한성과 스케일을 고려한 가역성을 검사합니다
IsTranslationOnly선형 성분이 단위 행렬인지 검사합니다
IsAxisAligned사각형이 축 정렬을 유지하는지 검사하며 허용 오차 안의 90도 배치도 포함합니다
NearlyEquals허용 오차로 TPdfMatrix나 FS_MATRIX와 비교합니다
GetTranslationX와 Y 이동 요소를 함께 읽습니다
SetTranslation선형 성분을 보존하면서 X와 Y 이동을 교체합니다
ClearTranslation두 이동 요소를 0으로 설정합니다
TryDecompose행렬이 비특이일 때 이동, 부호 있는 스케일, 시계 방향 회전, 전단, 행렬식, 반사 상태를 추출합니다
Multiply다른 TPdfMatrix나 명시적인 a부터 f 값으로 오른쪽 곱합니다
PreMultiply다른 TPdfMatrix나 명시적인 여섯 값 행렬로 왼쪽 곱합니다
PreTranslate행렬의 로컬 입력 공간에서 이동을 앞에 붙입니다
PreScale분리된 X와 Y 스케일 인자를 앞에 붙입니다
PreRotate시계 또는 반시계 방향 회전을 앞에 붙입니다
PreSkew분리된 X와 Y 전단 각을 앞에 붙입니다
TranslatedeltaX와 deltaY 이동을 뒤에 붙입니다
Scale분리된 X와 Y 스케일 인자를 뒤에 붙입니다
Rotate도 또는 라디안 단위의 시계 또는 반시계 방향 회전을 뒤에 붙입니다
HorizontalFlipX축 뒤집기를 뒤에 붙입니다
VerticalFlipY축 뒤집기를 뒤에 붙입니다
CentralFlip두 축 뒤집기를 뒤에 붙이며, 삼각 함수 없이 180도 회전과 같습니다
Skew분리된 X와 Y 전단 각을 뒤에 붙입니다
RotateAt고정되는 피벗 주위의 회전을 뒤에 붙입니다
ScaleAt고정되는 피벗 주위의 스케일을 뒤에 붙입니다
SkewAt고정되는 피벗 주위의 전단을 뒤에 붙입니다
HorizontalFlipAt호출자가 고른 X 좌표 주위의 가로 뒤집기를 뒤에 붙입니다
VerticalFlipAt호출자가 고른 Y 좌표 주위의 세로 뒤집기를 뒤에 붙입니다
CentralFlipAt호출자가 고른 피벗 주위의 두 뒤집기를 뒤에 붙입니다
MapRectToRect정규화된 사각형 사이의 stretch, contain, cover 매핑을 뒤에 붙입니다
Invert행렬을 역행렬로 교체하며 특이 행렬이면 EPdfMatrixError를 발생시킵니다
TryInvert행렬을 역행렬로 교체하며, 특이 또는 근접 특이 행렬이면 상태를 바꾸지 않고 False를 반환합니다
TryGetInverse이 인스턴스를 바꾸지 않고 역 FS_MATRIX를 계산합니다
InverseCopy독립적인 역행렬을 만들며 특이 행렬이면 EPdfMatrixError를 발생시킵니다
TransformPointPDF 행 벡터 관례로 좌표를 아핀 변환에 통과시킵니다
TransformVector이동이 무시되도록 선형 성분만으로 방향을 매핑합니다
TryInverseTransformPoint행렬을 할당하지 않고 역변환으로 점을 매핑하고 특이 변환은 False로 보고합니다
InverseTransformPoint역변환으로 점을 매핑하며 특이 행렬이면 EPdfMatrixError를 발생시킵니다
TransformQuadFS_QUADPOINTSF 값의 네 점을 모두 매핑합니다
TransformPoints점 배열을 결과 할당 한 번으로 매핑합니다
TransformPointsInPlace호출자 소유 저장 공간에서 점 배열을 다른 배열을 할당하지 않고 매핑합니다
TryTransformBounds변환된 점 경계를 한 패스로 누적하고 빈 입력은 False를 반환합니다
TransformBounds변환된 점 경계를 한 패스로 누적하며 빈 입력이면 EPdfMatrixError를 발생시킵니다
TransformRect정확한 축 정렬 빠른 경로 또는 조밀한 네 모서리 경계로 사각형을 정규화하고 매핑합니다
TransformRects사각형 배열을 결과 할당 한 번으로 매핑합니다
TransformRectsInPlace호출자 소유 저장 공간에서 사각형 배열을 다른 배열을 할당하지 않고 매핑합니다

Properties

PropertyTypeDescription
aSingle읽기 전용 첫 번째 행렬 요소
bSingle읽기 전용 두 번째 행렬 요소
cSingle읽기 전용 세 번째 행렬 요소
dSingle읽기 전용 네 번째 행렬 요소
eSingle읽기 전용 이동 X 요소
fSingle읽기 전용 이동 Y 요소
HandleFS_MATRIXFS_MATRIX나 PFS_MATRIX를 받는 PDFium API를 위한 raw 행렬 값

Description

TPdfMatrix는 PDF 아핀 배치 a b c d e f를 사용하고 각 연산을 오른쪽 곱하므로, 호출이 점에 적용되는 변환과 같은 순서로 읽힙니다

PreMultiply와 Pre* 헬퍼는 현재 변환 앞에 연산을 추가하고, 피벗 헬퍼는 선택한 피벗을 고정한 채 이동-연산-이동 시퀀스를 뒤에 붙입니다

pmfContain은 가운데 정렬된 여백과 함께 원본 사각형 전체를 보존하고 pmfCover는 가운데 정렬된 넘침으로 대상을 채우며, pmfStretch는 X와 Y가 서로 독립적으로 스케일되는 것을 허용합니다

대량 점과 사각형 메서드는 출력 배열을 하나 할당하고, in-place 변형은 아무것도 할당하지 않으며, TryTransformBounds는 중간 배열을 만들지 않고 변환된 점을 훑습니다

Handle을 FPDFPageObj_SetMatrix, FPDFPageObj_Transform, FPDFText_SetMatrix 같은 API와 함께 사용하세요

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