codecamp

PyPDF2 Transformation类

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 实例

PyPDF2 PageObject类
PyPDF2 DocumentInformation类
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }