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