分割PDF的特定页面并使用Python保存

时间:2019-04-10 11:11:00

标签: python python-3.x

我正在尝试将20页pdf文件(单个)拆分为五个各自的pdf文件,第一个pdf包含1-3页,第二个pdf文件仅包含第4页,第3个pdf包含5至10页,第四个pdf包含11-17页,第5个pdf包含18-20页。我需要python中的工作代码。下面提到的代码将整个pdf文件拆分为单个页面,但是我希望将这些页面分组。

    from PyPDF2 import PdfFileWriter, PdfFileReader
    inputpdf = PdfFileReader(open("input.pdf", "rb"))
    for i in range(inputpdf.numPages):
    j = i+1    
    output = PdfFileWriter()
    output.addPage(inputpdf.getPage(i))
    with open("page%s.pdf" % j, "wb") as outputStream:
    output.write(outputStream)

2 个答案:

答案 0 :(得分:0)

如果您拥有python 3,则可以根据以下答案在此处使用tika:

How to extract text from a PDF file?

答案 1 :(得分:0)

对我来说,使用我编写的以下示例代码pdfrw似乎example from GitHub的任务:

from pdfrw import PdfReader, PdfWriter
pages = PdfReader('inputfile.pdf').pages
parts = [(3,6),(7,10)]
for part in parts:
    outdata = PdfWriter(f'pages_{part[0]}_{part[1]}.pdf')
    for pagenum in range(*part):
        outdata.addpage(pages[pagenum-1])
    outdata.write()

此文件创建两个文件:pages_3_6.pdfpages_7_10.pdf,每个文件具有3页,即3、4、5和7、8、9。请注意代码中的pagenum-1,之所以使用-1是因为pdf页面的编号从1开始而不是0。我还使用了所谓的f字符串来获取输出文件的名称。我认为这是一种巧妙的方法,但是它在Python2中不可用,而且我不确定它是否在所有Python3版本中都可用(我在3.6.7中测试了我的代码),因此如果您愿意,可以改用旧的格式化方法希望。 请记住,根据您的需要更改文件名和范围。