PyPDF2 Transformation类

2023-03-30 09:31 更新

classPyPDF2.Transformation(ctm: Tuple[float, float, float, float, float, float] = (1, 0, 0, 1, 0, 0))

基类: object

表示二维变换。

两个坐标系之间的变换用一个 3×3 的变换矩阵表示,其形式如下:

a b 0
c d 0
e f 1

因为一个变换矩阵只有六个元素可以改变,所以它通常在 PDF 中被指定为六元素数组 [abcdef]。

坐标变换表示为矩阵乘法:

                            a b 0
[ x′ y′ 1 ] = [ x y 1 ] ×   c d 0
                            e f 1

例子

>>> from PyPDF2 import Transformation
>>> op = Transformation().scale(sx=2, sy=3).translate(tx=10, ty=20)
>>> page.add_transformation(op)

apply_on(pt: Union[Tuple[Decimal, Decimal], Tuple[float, float], List[float]])→ Union[Tuple[float, float], List[float]]

在给定点上应用变换矩阵。

参数

pt – 表示形式为 (x, y) 的点的元组或列表

返回

以 (x', y') 形式表示转换点的元组或列表

staticcompress(matrix: Tuple[Tuple[float, float, float], Tuple[float, float, float], Tuple[float, float, float]])→ Tuple[float, float, float, float, float, float]

将变换矩阵压缩为 (a, b, c, d, e, f) 的元组。

参数

matrix -- 转换矩阵作为元组的元组。

返回

表示转换矩阵的元组 (a, b, c, d, e, f)

属性 matrix: Tuple[Tuple[float, float, float], Tuple[float, float, float], Tuple[float, float, float]]

以元组的元组形式返回转换矩阵:((a, b, 0), (c, d, 0), (e, f, 1))

rotate(rotation: float)→ Transformation

旋转页面的内容。

参数

rotation – 以度为单位的旋转角度。

返回

具有旋转矩阵的新Transformation实例。

scale(sx: Optional[float] = None, sy: Optional[float] = None)→ Transformation

将页面内容缩放到坐标系的原点。

通常,这是页面的左下角。这可以通过翻译内容/页面框来改变。

参数
  • sx – 沿 x 轴的比例因子。

  • sy – 沿 y 轴的比例因子。

返回

具有缩放矩阵的新 Transformation 实例。

translate(tx: float = 0, ty: float = 0)→ Transformation

翻译页面内容。

参数
  • tx – 沿 x 轴的平移。

  • ty – 沿 y 轴的平移。

返回

一个新的Transformation 实例

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号