Skip to main content
Interwork Corporation
IDR Solutions Product Support Portal
PDF開発用語集 モードの切替 ダーク/ライト/自動 モードの切替 ダーク/ライト/自動 モードの切替 ダーク/ライト/自動

CTM (Current Transformation Matrix)

CTM(Current Transformation Matrix、現在の変換行列)は、PDFコンテンツストリームにおいて、ユーザー空間の座標をデバイス空間にマッピングする方法を定義する数学的構造です。

キーワード: ctm (current transformation matrix), CTM (Current Transformation Matrix)

概要

CTM(Current Transformation Matrix、現在の変換行列)は、PDFコンテンツストリームにおいて、ユーザー空間の座標をデバイス空間にマッピングする方法を定義する数学的構造です ( Citation: N.A., (N.A.). (). Document management — Portable document format — Part 2: PDF 2.0 International Organization for Standardization Retrieved from https://www.iso.org/standard/75839.html ) 。CTMは、拡大縮小、回転、平行移動、傾斜など、グラフィックオブジェクトに適用されるすべての幾何学的変換を制御します。CTMはグラフィックス状態の一部であり、テキスト、パス、画像を描画する際に使用されるすべての座標に影響を与えます。

定義

CTMは、ユーザー空間(グラフィックス操作を指定する際に使用される座標系)からデバイス空間(出力デバイスの座標系)へ座標を変換する3×3行列です。PDFでは、この行列は6つの数値 [a b c d e f] で表現され、変換行列の最初の2行に対応します。3行目は常に [0 0 1] であるためです ( Citation: N.A., (N.A.). (). Document management — Portable document format — Part 2: PDF 2.0 International Organization for Standardization Retrieved from https://www.iso.org/standard/75839.html )

CTMは、コンテンツストリーム内の現在の位置までに適用されたすべての変換の累積効果を表すという点で、PDF内の他の変換行列とは異なります。個々の変換演算子は一時的に座標を変更しますが、CTMはすべての変換の現在の状態を維持します。テキストの配置を具体的に処理するテキスト行列とは異なり、CTMはすべてのグラフィックオブジェクトに一様に適用されます。

重要性

CTMの理解は、PDF生成、操作、レンダリングを扱う開発者にとって不可欠です。CTMの不適切な処理は、グラフィックスが誤った位置に表示されたり、サイズが不正確になったり、向きが不適切になったりする原因となります。アクセシブルなPDFを作成する際、CTMは構造要素に対するコンテンツの配置方法に影響を与え、これが論理的な読み上げ順序やコンテンツ抽出に影響します。

PDFライブラリを使用する開発者は、特に複数の変換を連結する場合やネストされたグラフィックス状態を扱う場合、CTMの状態を慎重に追跡する必要があります。CTMは、描画操作で指定された座標が最終出力にどのように変換されるかを決定するため、正確なドキュメントレンダリングとコンテンツ配置にとって重要です。

仕組み

CTMは行列乗算を通じて動作し、変換演算子が新しい変換行列を既存のCTMと連結することで現在の行列を変更します ( Citation: N.A., (N.A.). (). Document management — Portable document format — Part 2: PDF 2.0 International Organization for Standardization Retrieved from https://www.iso.org/standard/75839.html ) 。座標 (x, y) を持つ点が変換されると、新しい座標 (x’, y’) は次のように計算されます:

  • x’ = a×x + c×y + e
  • y’ = b×x + d×y + f

CTMを変更する一般的な変換演算子には以下があります:

  • cm演算子:指定された行列をCTMと連結します
  • q演算子:現在のグラフィックス状態(CTMを含む)をスタックに保存します
  • Q演算子:グラフィックス状態(およびCTM)をスタックから復元します

CTMは、ユーザー空間座標系をデバイス空間にマッピングするデフォルトの変換から始まります。各変換操作は、現在のCTMに新しい変換行列を乗算し、その効果は累積されます。例えば、回転の後に平行移動を適用すると、同じ操作を逆の順序で適用した場合とは異なる結果が生成されます。

グラフィックス状態スタック(qおよびQ演算子によって管理)により、以前に保存された状態を復元することで破棄できる一時的なCTM変更が可能になり、特定のグラフィックオブジェクトに対する分離された変換コンテキストが実現されます。

関連用語

  • User Space(ユーザー空間) – PDFコンテンツストリームでグラフィックス操作を指定する際に使用される座標系
  • Device Space(デバイス空間) – コンテンツが最終的にレンダリングされる出力デバイスの座標系
  • Graphics State(グラフィックス状態) – CTMを含む、グラフィックス演算子がどのように実行されるかを定義するパラメータの集合
  • Content Stream(コンテンツストリーム) – ページやフォームの外観を記述する命令のシーケンス
  • Coordinate System(座標系) – グラフィックオブジェクトの位置と寸法を指定するためのフレームワーク

出典

(N.A.) (2020)
(N.A.). (). Document management — Portable document format — Part 2: PDF 2.0 International Organization for Standardization Retrieved from https://www.iso.org/standard/75839.html