我想将一个长PDF文档分成许多部分,例如第1部分包括第3-14页,第2部分包括第15-19页,第3部分包括第20-27页,使用PyPDF2。
我编写了一个循环,它将原始PDF中的相关页面保存为每个部分的新文档。唯一的问题是第2部分仍然包括第1部分中的所有页面,第3部分仍包括第1部分和第1部分中的页面。 2。
我认为我不得不重置' output = PdfFileWriter(),但是如果我将它放入while循环中,我会得到一条很长的错误信息。
output = PdfFileWriter()
input = PdfFileReader(open("%s" % pdf, "rb"))
current_row = 2
i = sheet.cell(row = current_row, column = 4).value
j = sheet.cell(row = current_row, column = 5).value
org = sheet.cell(row = current_row, column = 1).value
n = sheet.cell(row = current_row, column = 7).value
while i > 0:
while i <= j:
p = i-1
output.addPage(input.getPage(p))
i += 1
print(i, p, j)
print org
outputStream = file("%s_%s_%s.pdf" % (mysheet, n, org), "wb")
output.write(outputStream)
outputStream.close()
current_row += 1
i = sheet.cell(row = current_row, column = 4).value
j = sheet.cell(row = current_row, column = 5).value
org = sheet.cell(row = current_row, column = 1).value
n = sheet.cell(row = current_row, column = 7).value
答案 0 :(得分:-1)
这就是我尝试过的。我在我的pdf文件上试了一下,我有明确的页码。
from PyPDF2 import PdfFileWriter, PdfFileReader
pages={'part1':(3,14),'part2':(15,19),'part3':(20,27)}
for name,offset in pages.items():
op = PdfFileWriter()
ip = PdfFileReader(open("result.pdf", "rb"))
for i in range(offset[0]-1,offset[1]):
op.addPage(ip.getPage(i))
with file(name+'pdf','wb') as f:
op.write(f)
我很高兴知道我是否可以改进我的答案,因为我在我的系统上尝试过。它起作用了。