Как обнаружить повернутую страницу в документе 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'