使用 PyPDF2 连接多个 Pdf
Concatenate multiple Pdf using PyPDF2
我正在尝试将多个 pdf 合并为一个。
以下是我的代码:
import PyPDF2
import os
import sys
if not sys.warnoptions:
import warnings
warnings.simplefilter("ignore")
pdf_path=r'path'
os.chdir(pdf_path)
output_pdf=input("Enter for output pdf: ")
#Get PDF list
pdfmerge=[]
for pdf_file in os.listdir(pdf_path):
if pdf_file.endswith('.pdf'):
pdfmerge.append(pdf_file)
pdfWriter = PyPDF2.PdfFileWriter()
#loop through all PDFs
for pdf_file in pdfmerge:
pdfFileObj=open(pdf_file,'rb')
pdfReader = PyPDF2.PdfFileReader(pdfFileObj)
for pageNum in range(pdfReader.numPages):
pageObj=pdfReader.getPage(pageNum)
pdfWriter.addPage(pageObj)
#Save PDF
pdfOutput=open(output_pdf+'.pdf','wb')
pdfWriter.write(pdfOutput)
pdfOutput.close()
此代码提供了输出 pdf,但只有文件夹中的最后一个 pdf 被连接到输出 pdf 中,其余的则没有。
我如何更改代码以便合并文件夹中的所有 pdf 而不仅仅是最后一个 pdf
您在迭代页面时缺少缩进,它应该显示为:
for pdf_file in pdfmerge:
pdfFileObj=open(pdf_file,'rb')
pdfReader = PyPDF2.PdfFileReader(pdfFileObj)
for pageNum in range(pdfReader.numPages):
pageObj=pdfReader.getPage(pageNum)
pdfWriter.addPage(pageObj)
我正在尝试将多个 pdf 合并为一个。 以下是我的代码:
import PyPDF2
import os
import sys
if not sys.warnoptions:
import warnings
warnings.simplefilter("ignore")
pdf_path=r'path'
os.chdir(pdf_path)
output_pdf=input("Enter for output pdf: ")
#Get PDF list
pdfmerge=[]
for pdf_file in os.listdir(pdf_path):
if pdf_file.endswith('.pdf'):
pdfmerge.append(pdf_file)
pdfWriter = PyPDF2.PdfFileWriter()
#loop through all PDFs
for pdf_file in pdfmerge:
pdfFileObj=open(pdf_file,'rb')
pdfReader = PyPDF2.PdfFileReader(pdfFileObj)
for pageNum in range(pdfReader.numPages):
pageObj=pdfReader.getPage(pageNum)
pdfWriter.addPage(pageObj)
#Save PDF
pdfOutput=open(output_pdf+'.pdf','wb')
pdfWriter.write(pdfOutput)
pdfOutput.close()
此代码提供了输出 pdf,但只有文件夹中的最后一个 pdf 被连接到输出 pdf 中,其余的则没有。 我如何更改代码以便合并文件夹中的所有 pdf 而不仅仅是最后一个 pdf
您在迭代页面时缺少缩进,它应该显示为:
for pdf_file in pdfmerge:
pdfFileObj=open(pdf_file,'rb')
pdfReader = PyPDF2.PdfFileReader(pdfFileObj)
for pageNum in range(pdfReader.numPages):
pageObj=pdfReader.getPage(pageNum)
pdfWriter.addPage(pageObj)