You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python检测并旋转180度倒置的PDF页面?

检测并自动旋转PDF中180度倒置页面

核心思路

180度倒置的PDF页面分两种情况处理:

  • 原生可编辑PDF:通常会自带旋转属性,直接读取页面旋转标记即可判断
  • 扫描件PDF(图片转PDF):需通过OCR识别文本方向,或分析图像像素分布来判定内容是否倒置

PyMuPDF(fitz)是处理这类需求的最优选择——它既支持直接操作PDF页面属性,也能快速将页面转为图像用于后续分析。

实现脚本

方案1:处理原生可编辑PDF

直接读取页面旋转属性,自动修正180度倒置页面:

import fitz  # PyMuPDF

def fix_rotated_pages(input_path, output_path):
    doc = fitz.open(input_path)
    for idx in range(len(doc)):
        page = doc[idx]
        if page.rotation == 180:
            page.set_rotation(0)
            print(f"页面 {idx+1} 已从180度旋转回正常方向")
    
    doc.save(output_path)
    doc.close()
    print(f"处理完成,结果文件:{output_path}")

# 调用示例
if __name__ == "__main__":
    fix_rotated_pages("input.pdf", "fixed_output.pdf")

方案2:兼容扫描件PDF

结合Tesseract OCR检测图像文本方向,自动修正扫描类倒置页面:

import fitz
import pytesseract
from PIL import Image

def get_text_rotation(image):
    # 用Tesseract检测文本旋转角度
    osd_data = pytesseract.image_to_osd(image)
    return int(osd_data.split('Rotate: ')[1].split('\n')[0])

def fix_scanned_rotated_pages(input_path, output_path):
    doc = fitz.open(input_path)
    for idx in range(len(doc)):
        page = doc[idx]
        # 先检查页面自带旋转属性
        if page.rotation == 180:
            page.set_rotation(0)
            print(f"页面 {idx+1} 已修正180度旋转")
            continue
        
        # 处理扫描件:转图像检测文本方向
        pix = page.get_pixmap()
        img = Image.frombytes("RGB", [pix.width, pix.height], pix.samples)
        rotation_angle = get_text_rotation(img)
        
        if rotation_angle == 180:
            page.set_rotation((page.rotation - 180) % 360)
            print(f"扫描页面 {idx+1} 已修正180度旋转")
    
    doc.save(output_path)
    doc.close()
    print(f"处理完成,结果文件:{output_path}")

# 调用示例
if __name__ == "__main__":
    fix_scanned_rotated_pages("scanned_input.pdf", "scanned_fixed.pdf")

依赖安装

  • 基础依赖:pip install pymupdf
  • 扫描件处理额外依赖:
    1. 安装Tesseract OCR引擎(需对应系统版本)
    2. 安装Python库:pip install pytesseract pillow

内容的提问来源于stack exchange,提问作者Ryen DeGan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 11:10:41