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

Check if page is vertical using PyPDF2?

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

理想情况下,会有 pdfReader.getPage(0).isVertical() 方法 returns truefalse,但我在 PageObject docs

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

希望做到以下几点。

if (not (pdfReader.getPage(0).isVertical())):
    pdfReader.getPage(0).rotateClockwise(90)

我能够保证我的第一页 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()

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

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

if (firstPage.get('/Rotate')):
    firstPage.rotateCounterClockwise(firstPage.get('/Rotate'))