2017-03-23 10 views
0

ディレクトリ内のすべての請求書pdfsの最後に1ページpdf(lastpage)を追加しようとしています。 filestart( 'ICO_' + HH名)。ディレクトリ内のすべてのpdfsの最後に1ページpdfを追加する - python

Issue 1.)私のコードは1ページ(1 = 1 + last、2 = 1 + 2 + lastなど)の上に以前の請求書を合計しています。私は、ファイル名(filename = "")の前に、rowcount = rowcount + 1をクリアしようとしましたが、それも助けになりませんでした。

問題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 

答えて

0

1))すなわちループの内側に移動する(すべてのマージのためmergerの新しいinstannceを作成します。

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

2)

+0

1を再現する正確な手順なしとは言い難いです)、合計問題を解決しました。 – theurlin

+0

2)私は請求書番号(8)から最初の番号を追加して2番目の問題を修正できました:filestart = 'ICO_' + ws.cell(行=行数、列= 1).value + '8' – theurlin

関連する問題