Python代码: 把几个PDF文件拼接为一个 Merge PDF files

虽然有很多现存的APP可以轻松拼接PDF文件, 不过免费的担心广告,就用python简单写了一个短程序, 可以很容易做到

1.开辟一个专门做拼接的文件夹, 我的叫"test":

        NewDir=r"C:\Users\YX\Documents\Lennovo\test"

2. 把需要拼接的pdf文件都转到该文件夹中

下面是程序代码

先下载PyPDF2:

pip install PyPDF2

然后代码如下:

import os
from PyPDF2 import PdfFileReader, PdfFileWriter,PdfFileMerger

NewDir=r"C:\Users\YX\Documents\Lennovo\test"  #working director

NewName="test.pdf"
os.chdir(NewDir)  #file operation will be done in the NewDir
print(os.getcwd())


fnames=[]  #to read files
for i in os.scandir(NewDir):
    if (i.is_file() and i.name.endswith(".pdf")):
        fnames.append(i.name)

def MergePdf():
    MergedPdf=PdfFileWriter()
    TotalPages = 0
    for fn in fnames:
        input = PdfFileReader(open(fn, "rb"))
        pages= input.getNumPages()
        TotalPages += pages
        print(fn,"page numbers:%d" % pages)
        for i in range(pages):
            MergedPdf.addPage(input.getPage(i))
    print("total pages:",TotalPages)
    NewFile = open(os.path.join(NewDir, NewName), "wb")
    MergedPdf.write(NewFile)
    NewFile.close()

def MergePdf2():
    MergedPdf = PdfFileMerger()
    for fn in fnames:
        f=open(fn,"rb")
        MergedPdf.append(PdfFileReader(f))
        f.close()
    NewFile = open(os.path.join(NewDir, NewName), "wb")
    MergedPdf.write(NewFile)

MergePdf()

注意:

1.pdf 文件的文件名必须与程序中的i.name.endswith(".pdf") 一致(要么都是大写PDF,要么都是小写pdf

2. 提供了2个子程序, 都可以用来拼接

你可能感兴趣的:(python,pip)