如何在python中使用PyPDF2每4页拆分一个PDF?
在线找到一个将pdf拆分为2页的示例代码,但无法将其更改为4页,如有任何提示,将不胜感激如何在python中使用PyPDF2每4页拆分一个PDF?,python,python-3.x,pdf,pypdf2,Python,Python 3.x,Pdf,Pypdf2,在线找到一个将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(in
#!/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()
#/usr/bin/env蟒蛇3
从PyPDF2导入PdfileWriter、PdfileReader
导入glob,sys
pdf=glob.glob(“*.pdf”)
pdf格式的pdf文件:
inputFile=PdfileReader(打开(pdf,“rb”))
对于范围内的i(inputFile.numPages//2):
输出=PdfileWriter()
output.addPage(inputFile.getPage(i*2))
如果i*2+1
在逐行理解代码的工作原理后,我能够想出一个解决方案,尽管我相信它仍然可以改进,但它得到了我需要的结果。在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()
#/usr/bin/env蟒蛇3
从PyPDF2导入PdfileWriter、PdfileReader
导入glob,sys
pdf=glob.glob(“*.pdf”)
pdf格式的pdf文件:
inputFile=PdfileReader(打开(pdf,“rb”))
对于范围内的i(0,inputFile.numPages,2):
输出=PdfileWriter()
output.addPage(inputFile.getPage(i*2))
output.addPage(inputFile.getPage(i*2+1))
output.addPage(inputFile.getPage(i*2+2))
如果i*2+3
您已经尝试过更改数字了吗?是的,我尝试过将所有数字更改为4,但仍然将其拆分为2页,我还尝试了其他数字的组合,但也不起作用。如果可用,则单个if
只会添加一页。