Как обнаружить повернутую страницу в документе PDF на Python?

Для документа PDF с несколькими страницами, как проверить, поворачивается ли данная страница (-90, 90 или 180º)? Предпочтительнее использовать Python (pdfminer, pyPDF) ...

ОБНОВЛЕНИЕ: страницы сканируются, и большая часть страницы состоит из текста.

3 ответа

Я использовал просто /Rotate атрибут страницы в PyPDF2:

 pdf = PyPDF2.PdfFileReader(open('example.pdf', 'rb'))
 orientation = pdf.getPage(pagenumber).get('/Rotate')

может быть 0, 90, 180, 270 или же None

Если вы используете pdfminer вы можете получить вращение, вызвав .rotate атрибут PDFPage пример.

      for page in PDFPage.create_pages(doc):
    interpreter.process_page(page)
    r = page.rotate

Если вы используете PDFMiner и хотите ориентацию каждой страницы:

      from pdfminer.pdfpage import PDFPage
from io import StringIO
from pdfminer.pdfparser import PDFParser
from pdfminer.pdfdocument import PDFDocument
from pdfminer.pdfpage import PDFPage
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams

output_string = StringIO()
resource_manager = PDFResourceManager()
device = TextConverter(resource_manager, output_string, 
laparams=LAParams())
interpreter = PDFPageInterpreter(resource_manager, device)

for page in PDFPage.get_pages(open('sample.pdf', 'rb')):
    interpreter.process_page(page)

    if page.mediabox[2] - page.mediabox[0] > page.mediabox[3] - page.mediabox[1]:
        orientation = 'Landscape'
    else:
        orientation = 'Portrait'
Другие вопросы по тегам