python实现PDF指定页面旋转

下面示例代码,是将横向纸张旋转为纵向(根据纸张大小判断纸张方向)
方法一:使用PyPDF2

from PyPDF2 import PdfFileWriter, PdfFileReader


def page_rotation(old_file, new_file):
    """
    PDF页面旋转
    :param old_file: 需要旋转的PDF文件
    :param new_file: 旋转后的PDF文件
    :return:
    """
    pdf = PdfFileReader(old_file)
    page_num = pdf.getNumPages()
    pdf_writer = PdfFileWriter()
    for i in range(page_num):
        # orientation = pdf.getPage(i).get('/Rotate')   # 获取页面的旋转角度
        size = pdf.getPage(i).mediaBox  # 获取页面大小值(长、宽)
        x, y = size.getUpperRight_x(), size.getUpperRight_y()
        if x > y:
            # 顺时针旋转90度  90的倍数
            page = pdf.getPage(i).rotateClockwise(90)
            # 逆时针旋转90度  90的倍数
            # page = pdf.getPage(i).rotateCounterClockwise(90)
            pdf_writer.addPage(page)
        else:
            # 不旋转
            page = pdf.getPage(i).rotateClockwise(0)
            pdf_writer.addPage(page)
    with open(new_file, 'wb') as f:
        pdf_writer.write(f)

方法二:使用pdfrw

安装:pip install pdfrw
from pdfrw import PdfReader, PdfWriter


def pdf_page_rotate(input_file, output_file):
    """
    页面旋转
    :param input_file: 输入文件
    :param output_file: 输出文件
    :return:
    """
    reader = PdfReader(input_file)
    writer = PdfWriter()
    pages = reader.pages
    # print(pages)
    # page也有MediaBoxs属性,可以取到页面大小
    # size = pages[0].MediaBox
    pages[0].Rotate = 90  # 顺时针旋转90度
    writer.addpage(pages[0])
    writer.write(output_file)
posted @   cnblogs用户  阅读(1889)  评论(1编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示