Python程序教程

您现在的位置是:首页 >  Python

当前栏目

python PdfFileMerger

python,PdfFileMerger
2025-03-25 08:59:25 时间

python 3.9

PyPDF2==1.26.0

要件:

a.pdf,b.pdf → merge.pdf

  • 导入包:
from PyPDF2 import PdfFileMerger, PdfFileReader
  • 直接写入指定文件中:
def merge_pdf_document(docs:List[str], file_name:str):
    """PDF merge
    args:
        docs     : file path list e.g.['C://temp//a.pdf','C://temp//b.pdf']
        file_name: output file name e.g. 'merge_file_name.pdf'
    """
    merger = PdfFileMerger()
    for doc in docs:
        file_path = os.path.join(settings.UPLOAD_FOLDER, doc)
        if file_path.endswith('.pdf'):
            merger.append(PdfFileReader(file_path))

    if merger:
        temp_path = os.path.join(settings.UPLOAD_FOLDER, 'zip', file_name)
        merger.write(temp_path)
        merger.close()

  • 返回ByteIO
def merge_pdf_document(filepath_list:List[str]):
    """PDF merge
    args:
        filepath_list: file path list e.g.['C://temp//a.pdf','C://temp//b.pdf']
    """
    
    merger = PdfFileMerger()
    for file_path in filepath_list:
        file = open(file_path, 'rb')
        if file:
            if doc.name.endswith('.pdf'):
                # PDFのみマージする
                merger.append(PdfFileReader(file))

    if merger:
        output= io.BytesIO()
        merger.write(output)
        merger.close()
        output.seek(0)
        return output
        
    #-------------------------------出力测试-------
    f = open('merge.pdf',"wb")
    f.write(output.getbuffer())
    f.close()
    #-------------------------------出力测试-------