• 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)
    
  • 相关阅读:
    洛谷P2345 奶牛集会
    洛谷P3531 [POI2012]LIT-Letters
    codevs 4163 hzwer与逆序对
    各种读入方式速度比较
    洛谷P1420 最长连号
    TCPDump:捕获并记录特定协议 / 端口
    linux下抓取网页快照
    Pro Android 4 第五章 理解Intent
    UpdatePanel和jQuery不兼容
    RAC 11.2.0.4 安装 遇到 INS-06001
  • 原文地址:https://www.cnblogs.com/rong-z/p/14959728.html
Copyright © 2020-2023  润新知