【问题标题】:Python 3 - Splitting a PDF filePython 3 - 拆分 PDF 文件
【发布时间】:2021-01-19 18:32:27
【问题描述】:

我希望从我的 PDF 文件中提取第 30 到 34 页并将其制成一个文档。但是,我的代码似乎只能让我进入第 34 页。

import os
from PyPDF2 import PdfFileReader, PdfFileWriter

path = 'file_path'

pdf = PdfFileReader(path, "rb")

for page in range(29, 33):
    pdf_writer = PdfFileWriter()
    pdf_writer.addPage(pdf.getPage(page))

output_fname = "Output.pdf"

with open(output_fname, 'wb') as out:
    pdf_writer.write(out)

print ("PDF file has been split")

好的,我注意到如果我更改了代码的中间部分以手动添加页面,它就可以工作。但我确实需要一种不那么笨重的方法来提取大量页面。

output.addPage(pdf.getPage(29))
output.addPage(pdf.getPage(30))

【问题讨论】:

    标签: python-3.x pypdf2


    【解决方案1】:

    Nvm 我意识到我的错误。应该刚刚从循环语句中排除 pdf_writer = PdfFileWriter()。

    import os
    from PyPDF2 import PdfFileReader, PdfFileWriter
    
    path = 'file_path'
    pdf = PdfFileReader(path, "rb")
    
    pdf_writer = PdfFileWriter()
    
    for page in range(29, 33):
        pdf_writer.addPage(pdf.getPage(page))
    
    output_fname = "Output.pdf"
    
    with open(output_fname, 'wb') as out:
        pdf_writer.write(out)
    
    print ("PDF file has been split")
    

    【讨论】:

      【解决方案2】:
      import os
      from PyPDF2 import PdfFileReader, PdfFileWriter
      
      path = r"C:\Users\scriptdocuchm_ktm.pdf"
      
      pdf = PdfFileReader(path, "rb")
      pdflist = []
      pdf_writer = PdfFileWriter()
      
      for page in range(66,70):
          pdflist.append(page)
          pdf_writer.addPage(pdf.getPage(page))
      
      print(pdflist)
      
      output_filename = "split.pdf"
      
      with open(output_filename, 'wb') as out:
          pdf_writer.write(out)
      
      print ("pdf file has been split")
      

      【讨论】:

      • 请添加一些描述您的代码在做什么的文字
      • 我觉得这样就够简单了
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-13
      • 1970-01-01
      • 2018-12-29
      相关资源
      最近更新 更多