8

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

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

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

希望做到以下几点。

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

1 回答 1

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()

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

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

if (firstPage.get('/Rotate')):
    firstPage.rotateCounterClockwise(firstPage.get('/Rotate'))
于 2017-08-02T15:49:09.707 回答