0

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

1 回答 1

1

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

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

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

于 2017-03-23T21:06:07.463 回答