如何在 python 中使用 PyPDF2 每 4 页拆分 PDF?
How to split a PDF every 4 pages using PyPDF2 in python?
在网上找到一个示例代码,将 pdf 分成 2 页,但无法将其更改为 4 页,任何提示将不胜感激
#!/usr/bin/env python3
from PyPDF2 import PdfFileWriter, PdfFileReader
import glob, sys
pdfs = glob.glob("*.pdf")
for pdf in pdfs:
inputFile = PdfFileReader(open(pdf, "rb"))
for i in range(inputFile.numPages // 2):
output = PdfFileWriter()
output.addPage(inputFile.getPage(i * 2))
if i * 2 + 1 < inputFile.numPages:
output.addPage(inputFile.getPage(i * 2 + 1))
newname = "-" + str(i) + ".pdf"
outputStream = open(newname, "wb")
output.write(outputStream)
outputStream.close()
在逐行了解代码的工作原理后,我想出了一个解决方案,虽然我相信它仍然可以改进,但它让我得到了我需要的结果。在 for 循环中,我不得不将计数器增加 2,以避免在每个循环后在每个文件中重复相同的页面,并且我添加了几个 addPage 语句并且它起作用了。感谢 randomhacks.co.uk 提出我在问题中陈述的原始代码。欢迎任何改进。
#!/usr/bin/env python3
from PyPDF2 import PdfFileWriter, PdfFileReader
import glob, sys
pdfs = glob.glob("*.pdf")
for pdf in pdfs:
inputFile = PdfFileReader(open(pdf, "rb"))
for i in range(0, inputFile.numPages, 2):
output = PdfFileWriter()
output.addPage(inputFile.getPage(i * 2))
output.addPage(inputFile.getPage(i * 2 + 1))
output.addPage(inputFile.getPage(i * 2 + 2))
if i * 2 + 3 < inputFile.numPages:
output.addPage(inputFile.getPage(i * 2 + 3))
newname = "pdf[:9]" +"-" + str(i) + ".pdf"
outputStream = open(newname, "wb")
output.write(outputStream)
outputStream.close()
在网上找到一个示例代码,将 pdf 分成 2 页,但无法将其更改为 4 页,任何提示将不胜感激
#!/usr/bin/env python3
from PyPDF2 import PdfFileWriter, PdfFileReader
import glob, sys
pdfs = glob.glob("*.pdf")
for pdf in pdfs:
inputFile = PdfFileReader(open(pdf, "rb"))
for i in range(inputFile.numPages // 2):
output = PdfFileWriter()
output.addPage(inputFile.getPage(i * 2))
if i * 2 + 1 < inputFile.numPages:
output.addPage(inputFile.getPage(i * 2 + 1))
newname = "-" + str(i) + ".pdf"
outputStream = open(newname, "wb")
output.write(outputStream)
outputStream.close()
在逐行了解代码的工作原理后,我想出了一个解决方案,虽然我相信它仍然可以改进,但它让我得到了我需要的结果。在 for 循环中,我不得不将计数器增加 2,以避免在每个循环后在每个文件中重复相同的页面,并且我添加了几个 addPage 语句并且它起作用了。感谢 randomhacks.co.uk 提出我在问题中陈述的原始代码。欢迎任何改进。
#!/usr/bin/env python3
from PyPDF2 import PdfFileWriter, PdfFileReader
import glob, sys
pdfs = glob.glob("*.pdf")
for pdf in pdfs:
inputFile = PdfFileReader(open(pdf, "rb"))
for i in range(0, inputFile.numPages, 2):
output = PdfFileWriter()
output.addPage(inputFile.getPage(i * 2))
output.addPage(inputFile.getPage(i * 2 + 1))
output.addPage(inputFile.getPage(i * 2 + 2))
if i * 2 + 3 < inputFile.numPages:
output.addPage(inputFile.getPage(i * 2 + 3))
newname = "pdf[:9]" +"-" + str(i) + ".pdf"
outputStream = open(newname, "wb")
output.write(outputStream)
outputStream.close()