【问题标题】:Concatenate multiple Pdf using PyPDF2使用 PyPDF2 连接多个 Pdf
【发布时间】:2025-12-26 06:40:10
【问题描述】:

我正在尝试将多个 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

【问题讨论】:

    标签: python pypdf2


    【解决方案1】:

    您在迭代页面时缺少缩进,它应该是:

    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)
    

    【讨论】: