天天看點

如何将多個PDF檔案合并為一個

1. 準備python 環境

通過 python -V 确認已經安裝

2. 安裝pip

mac 執行 sudo easy_install pip

通過指令 pip --version 确認已經安裝

3. 安裝PDF2 依賴

pip install PyPDF2

4. 建立Python 執行腳本(merge.py)

#!/usr/bin/python

import os
import getopt
import sys
from PyPDF2 import PdfFileMerger


def merge_pdf(source_dir, output_filename):
    merger = PdfFileMerger()
    for name in os.listdir(source_dir):
        if ".pdf" != os.path.splitext(name)[1]:
            continue
        filename = os.path.join(source_dir, name)
        print "read %s" % filename
        with open(filename, "rb") as input:
            merger.append(input)

    with open(output_filename, "wb") as output:
        merger.write(output)
    print "merge success: %s" % output_filename

def usage():
    print "python merge.py -d <invoice pdf directory> -o <output merged pdf filename>"

def main():
    try:
        opts, args = getopt.getopt(sys.argv[1:], "hd:o:", ["help","dir=", "output="])
    except getopt.GetoptError as err:
        print str(err)
        usage()
        sys.exit(2)
    output = None
    verbose = False
    directory=""
    for o, a in opts:
        if o in ("-h", "--help"):
            usage()
            sys.exit()
        elif o in ("-o", "--output"):
            output = a
        elif o in ("-d", "--dir"):
            directory = a
        else:
            print usage()
            sys.exit()
    if os.path.exists(directory):
        merge_pdf(directory, output)
    else:
        print("path empty")

if __name__ == "__main__":
    main()           

5. 準備PDF 檔案

建立一個demo 目錄,并将需要合并的原始PDF 放入demo 目錄下(可以一次合并多個)

6. 執行Python 指令,合并PDF(合并最終結果為 demo.pdf)

python merge.py -d demo/ -o demo.pdf