如何在Python中检测PDF文档中的旋转页面?

时间:2015-12-29 17:11:19

标签: python pdf image-processing pypdf pdfminer

如果PDF文档包含多个页面,如何检查给定页面是否旋转(-90,90或180º)?优先使用Python(pdfminer,pyPDF)......

更新:扫描页面,大部分页面由文本组成。

3 个答案:

答案 0 :(得分:0)

我在/Rotate中使用了页面的PyPDF2属性:

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

可以是090180270None

答案 1 :(得分:0)

如果您使用 pdfminer,则可以通过调用 .rotate 实例的 PDFPage 属性来获取轮换。

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

答案 2 :(得分:0)

如果您使用 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'