使用PyPDF2检查页面是否垂直?

Hen*_*nry 8 pdf python-3.x pypdf2

有没有办法检查使用PyPDF2查看PDF页面是否垂直?

理想情况下,会有pdfReader.getPage(0).isVertical()返回true或的方法false,但我在PageObject文档中找不到任何内容

我正在尝试在PDF的第一页顶部合并水印,但只有在PDF处于垂直方向时它才会看起来正确.

希望做到以下几点.

if (not (pdfReader.getPage(0).isVertical())):
    pdfReader.getPage(0).rotateClockwise(90)
Run Code Online (Sandbox Code Playgroud)

Hen*_*nry 3

firstPage = PyPDF2.PdfFileReader(pdfFile).getPage(0)通过结合使用两种方法,我能够保证我的第一页是垂直的。

代码

我是isVertical用右上角和右下角的坐标来计算的。

def isVertical(page):
    page = page.mediaBox
    return page.getUpperRight_x() - page.getUpperLeft_x() < page.getUpperRight_y() - page.getLowerRight_y()
Run Code Online (Sandbox Code Playgroud)

如果页面是横向的,我将其向左旋转 90 度,这可能会导致页面上下颠倒,但至少它是垂直的。如果 pdf 页面旋转,请将其旋转回来。

if (not isVertical(firstPage)):
    firstPage.rotateCounterClockwise(90)

if (firstPage.get('/Rotate')):
    firstPage.rotateCounterClockwise(firstPage.get('/Rotate'))
Run Code Online (Sandbox Code Playgroud)