在Python中操作PDF文件(2)

for page in range(pdfReader.numPages):
        pageObj = pdfReader.getPage(page)
        pageObj.rotateClockwise(rotation)
        pdfWriter.addPage(pageObj)

现在,我们迭代原始pdf的每一页。我们通过pdf阅读器类的getPage()方法获取页面对象。现在,我们通过页面对象类的rotationClockwise()方法旋转页面。然后,通过传递旋转的页面对象,使用pdf writer类的addPage()方法将页面添加到pdf writer对象。

newFile = open(newFileName, 'wb')
pdfWriter.write(newFile)
pdfFileObj.close()
newFile.close()

现在,我们必须将pdf页面写入新的pdf文件。首先,我们打开新文件对象,并使用pdf writer对象的write()方法向其中写入pdf页面。最后,我们关闭原始的pdf文件对象和新的文件对象。

3、分割PDF文件

# 导入所需的模块
import PyPDF2
 
def PDFsplit(pdf, splits):
    # 创建输入pdf文件对象
    pdfFileObj = open(pdf, 'rb')
     
    # 创建pdf阅读器对象
    pdfReader = PyPDF2.PdfFileReader(pdfFileObj)
     
    # 第一切片的起始索引
    start = 0
     
    # 最后一个切片的起始索引
    end = splits[0]
     
     
    for i in range(len(splits)+1):
        # 为第(i + 1)个拆分创建pdf写入器对象
        pdfWriter = PyPDF2.PdfFileWriter()
         
        # 输出pdf文件名
        outputpdf = pdf.split('.pdf')[0] + str(i) + '.pdf'
         
        # 将页添加到pdf写入器对象
        for page in range(start,end):
            pdfWriter.addPage(pdfReader.getPage(page))
         
        # 将分割的pdf页面写入pdf文件
        with open(outputpdf, "wb") as f:
            pdfWriter.write(f)
 
        # 交换页面拆分开始位置以进行下一个拆分
        start = end
        try:
            # 设置下一个拆分的拆分结束位置
            end = splits[i+1]
        except IndexError:
            # 设置最后分割的分割结束位置
            end = pdfReader.numPages
         
    # 关闭输入的pdf文件对象
    pdfFileObj.close()
             
def main():
    # pdf文件分割
    pdf = 'linuxidc.pdf'
     
    # 分割页面位置
    splits = [2,4]
     
    # 调用PDFsplit函数拆分pdf
    PDFsplit(pdf, splits)
 
if __name__ == "__main__":
    # 调用main函数
    main()

输出将是三个新的PDF文件,分别为拆分1(第0,1页),拆分2(第2,3页),拆分3(第4页末尾)。

上面的Python程序中没有使用新的函数或类。 使用简单的逻辑和迭代,我们根据传递的列表拆分创建了传递的pdf拆分。

Linux公社的RSS地址https://www.linuxidc.com/rssFeed.aspx

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/52488a42ef2847f35941aa87b718b61d.html