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

时间:2017-03-23 19:19:40

标签: python pdf pypdf2

我试图在目录中的所有发票pdf的末尾添加1页pdf(lastpage),然后根据filestart将pdf重命名为newname(' ICO _' + HH Name )。

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

问题2.)当文件启动遇到类似的姓氏(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 个答案:

答案 0 :(得分:1)

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

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

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

很难说