Проверить, является ли страница вертикальной, используя PyPDF2?

Есть ли способ проверить, является ли страница PDF вертикальной, используя PyPDF2?

В идеале должен быть метод pdfReader.getPage(0).isVertical(), возвращающий true или false, но я ничего не могу найти в документах PageObject< /а>

Я пытаюсь объединить водяной знак поверх первой страницы PDF-файла, но он выглядит правильно, только если PDF-файл имеет вертикальную ориентацию.

Надеялся сделать следующее.

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

person Henry    schedule 21.03.2017    source источник


Ответы (1)


Я смог гарантировать, что моя первая страница, 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'))
person Henry    schedule 02.08.2017