PDFium Delphi Component Docs

TPdfMatrix クラス

ユニット: FPdfMatrix
PDF ユーザースペースの変換を合成するための、PDFium の FS_MATRIX を包む可変の OO ラッパーです

構文

type TPdfMatrix = class ... end;

関連する型

型説明
TPdfPointArray点の一括操作で使われる FS_POINTF 値の動的配列
TPdfRectArray矩形の一括操作で使われる FS_RECTF 値の動的配列
TPdfMatrixFitMode矩形マッピングのための pmfStretch、pmfContain、pmfCover のフィットポリシー
TPdfMatrixDecompositionTryDecompose が返す、平行移動、符号付きスケール、時計回りの回転、シアー、行列式、反射の診断情報。フィールドは TranslationX、TranslationY、ScaleX、ScaleY、RotationDegrees、ShearDegrees、Determinant、IsReflected です

メソッド

メンバー説明
Create単位行列、6 値の行列、または FS_MATRIX からの防御的コピーを作成します
NewTranslation新しい平行移動行列を作成します
NewScale新しい非均一スケール行列を作成します
NewRotation度またはラジアンで、時計回りまたは反時計回りの回転行列を作成します
NewSkewX と Y で別々のシアー角を持つ行列を作成します
NewRectMappingソース矩形を宛先矩形の中へ stretch、contain、cover する行列を作成します
TryCreateRectMappingFS_MATRIX マッピングを返し、オブジェクトを割り当てることなく、ゼロサイズ、非有限、オーバーフローの入力を拒否します
Reset行列を単位行列へリセットします
SetElements6 つの行列要素をすべて 1 回の呼び出しで置き換えます
Assign別の TPdfMatrix または生の FS_MATRIX をこのインスタンスへコピーします
Clone独立したオブジェクトコピーを作成します
Determinant線形 2 x 2 成分の行列式を返します
IsFiniteすべての要素が有限の Single 値であるかどうかを報告します
IsIdentity呼び出し側が選択できる許容誤差で単位行列かどうかを検査します
IsInvertible逆行列を計算せずに、有限かつスケールを考慮した可逆性を検査します
IsTranslationOnly線形成分が単位行列かどうかを検査します
IsAxisAligned矩形が軸に整列したままかどうかを検査します。許容誤差内の 90 度単位の回転も含みます
NearlyEquals許容誤差を使って TPdfMatrix または FS_MATRIX と比較します
GetTranslationX と Y の平行移動要素をまとめて読み取ります
SetTranslation線形成分を保持したまま X と Y の平行移動を置き換えます
ClearTranslation両方の平行移動要素をゼロにします
TryDecompose行列が正則である場合、平行移動、符号付きスケール、時計回りの回転、シアー、行列式、反射の状態を抽出します
Multiply別の TPdfMatrix または明示的な a から f までの値で後から乗算します
PreMultiply別の TPdfMatrix または明示的な 6 値行列で前から乗算します
PreTranslate行列のローカルな入力空間における平行移動を前に追加します
PreScaleX と Y で別々のスケール係数を前に追加します
PreRotate時計回りまたは反時計回りの回転を前に追加します
PreSkewX と Y で別々のシアー角を前に追加します
TranslatedeltaX と deltaY による平行移動を後に追加します
ScaleX と Y で別々のスケール係数を後に追加します
Rotate度またはラジアンで、時計回りまたは反時計回りの回転を後に追加します
HorizontalFlipX 軸の反転を後に追加します
VerticalFlipY 軸の反転を後に追加します
CentralFlip両軸の反転を後に追加します。三角関数を使わない 180 度回転と同等です
SkewX と 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 値の 4 つの点すべてをマップします
TransformPoints点の配列を 1 回の結果割り当てでマップします
TransformPointsInPlace点の配列を、追加の配列を割り当てずに呼び出し側所有のストレージ内でマップします
TryTransformBounds変換された点の外接範囲を 1 パスで累積し、空の入力に対しては False を返します
TransformBounds変換された点の外接範囲を 1 パスで累積します。空の入力に対しては EPdfMatrixError を発生させます
TransformRect矩形を正規化し、正確な軸整列の高速経路またはタイトな 4 隅の外接範囲でマップします
TransformRects矩形の配列を 1 回の結果割り当てでマップします
TransformRectsInPlace矩形の配列を、追加の配列を割り当てずに呼び出し側所有のストレージ内でマップします

プロパティ

プロパティ型説明
aSingle読み取り専用の第 1 行列要素
bSingle読み取り専用の第 2 行列要素
cSingle読み取り専用の第 3 行列要素
dSingle読み取り専用の第 4 行列要素
eSingle読み取り専用の平行移動 X 要素
fSingle読み取り専用の平行移動 Y 要素
HandleFS_MATRIXFS_MATRIX または PFS_MATRIX を受け付ける PDFium API 向けの生の行列値

説明

TPdfMatrix は PDF のアフィンレイアウト a b c d e f を使い、各操作を後から乗算します。そのため呼び出しは、点に適用される変換と同じ順序で読めます

PreMultiply と Pre* ヘルパーは現在の変換の前へ操作を追加し、ピボットヘルパーは選択したピボットを固定に保つ「平行移動 - 操作 - 平行移動」の列を追加します

pmfContain は中央に余白を残してソース矩形全体を保存し、pmfCover は中央にあふれを残して宛先を埋めます。pmfStretch は X と Y で独立したスケーリングを許します

点と矩形の一括メソッドは出力配列を 1 つだけ割り当て、その場で処理するバリアントは割り当てを行いません。TryTransformBounds は中間配列を作らずに変換後の点を走査します

FPDFPageObj_SetMatrix、FPDFPageObj_Transform、FPDFText_SetMatrix などの API には Handle を使用してください

例

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;

関連項目

TPdf.CreateXObjectFromPage, TPdf.InsertFormObjectFromXObject