我试图在目录中的所有发票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
答案 0 :(得分:1)
1)为每次合并创建merger
的新实例(即在循环内移动):
...
for r in ws.rows:
merger = PdfFileMerger()
2)没有确切的步骤来重现
很难说