将一页 pdf 附加到目录中所有 pdf 的末尾 - python

Append a one page pdf to the end of all pdfs in a directory - python

我正在尝试将 1 页 pdf(最后一页)添加到目录中所有发票 pdf 的末尾,然后根据文件开始('ICO_' + HH 名称)将 pdf 重命名为新名称。

问题 1.) 我的代码在第 1 页的顶部汇总之前的发票(1 = 1 + 最后,2 = 1 + 2 + 最后,等等)。我试过在 rowcount = rowcount + 1 之前清除文件名 (filename = "") 但这也没有帮助。

问题 2.) 当 filestart 遇到相似的姓氏(smitht 和 smithr)时,我会得到一个错误,指出文件已经存在,而我确实知道它是不同的发票。还有办法解决这个问题吗?

import os
from openpyxl import load_workbook
from PyPDF2 import PdfFileMerger, PdfFileReader

book = load_workbook("/Invoice Names.xlsx")
ws = book.get_active_sheet()

lastpage = "/Invoice Last Page.pdf"
merger = PdfFileMerger()

rowcount = 2
for r in ws.rows:
    filestart ='ICO_' + ws.cell(row = rowcount, column = 1).value
    newname = ws.cell(row = rowcount, column = 2).value  
    for filename in os.listdir("invoices directory"):
        if filename.startswith(filestart):
            merger.append(PdfFileReader(file(filename, 'rb')))
            merger.append(PdfFileReader(file(lastpage, 'rb')))
            merger.write(newname)
            rowcount = rowcount + 1

1) 为每个合并创建一个 merger 的新实例(即将它移到循环内):

...
for r in ws.rows:
    merger = PdfFileMerger()

2) 没有确切的重现步骤很难说