前提・実現したいこと
python初心者で勉強中です。
PyPDF2を使ってPDFのファイル結合をやろうとしています。
結合前のPDFファイル(1.pdf から 6.pdf)を予め用意しておき、用意したEXCELリストを元に
PDFファイルの結合を行うというもので、具体的には、
「A列で指定したファイル名のPDFと、B列で指定したファイル名のPDFを結合し、
Cコラムに指定したファイル名で保存し、指定したフォルダへ格納」
という処理を行毎に行うことを想定しています。
<参考:用意したEXCELリスト(ファイル名:PDF結合リスト.xlsx)>
(0行目) (A列) (B列) (C列)
(1行目) PDF(1) PDF(2) 結合後のファイル名
(2行目) 1.pdf 2.pdf 1-2.pdf
(3行目) 3.pdf 4.pdf 3-4.pdf
(4行目) 5.pdf 6.pdf 5-6.pdf
<希望する処理>
(結合後のファイル名) (ファイルの中身)
1-2.pdf 1.pdf、2.pdf
3-4.pdf 3.pdf、4.pdf
5-6.pdf 5.pdf、6.pdf
発生している問題・エラーメッセージ
以下のコードを実行した所、上記PDFファイル自体は作成されたのですが、
中身が以下の通りとなってしまい、想定と異なります。
(結合後のファイル名) (ファイルの中身)
1-2.pdf 1.pdf、2.pdf
3-4.pdf 1.pdf、2.pdf、3.pdf、4.pdf
5-6.pdf 1.pdf、2.pdf、3.pdf、4.pdf、1.pdf、2.pdf、3.pdf、4.pdf、5.pdf、6.pdf
また、以下の様なメッセージがコンソールに表示されます。
PdfReadWarning: Superfluous whitespace found in object header b'1' b'0' [pdf.py:1665]
PdfReadWarning: Superfluous whitespace found in object header b'2' b'0' [pdf.py:1665]
PdfReadWarning: Superfluous whitespace found in object header b'3' b'0' [pdf.py:1665]
PdfReadWarning: Superfluous whitespace found in object header b'12' b'0' [pdf.py:1665]
PdfReadWarning: Superfluous whitespace found in object header b'13' b'0' [pdf.py:1665]
PdfReadWarning: Superfluous whitespace found in object header b'11' b'0' [pdf.py:1665]
PdfReadWarning: Superfluous whitespace found in object header b'4' b'0' [pdf.py:1665]
PdfReadWarning: Superfluous whitespace found in object header b'5' b'0' [pdf.py:1665]
PdfReadWarning: Superfluous whitespace found in object header b'6' b'0' [pdf.py:1665]
PdfReadWarning: Superfluous whitespace found in object header b'8' b'0' [pdf.py:1665]
PdfReadWarning: Superfluous whitespace found in object header b'7' b'0' [pdf.py:1665]
PdfReadWarning: Superfluous whitespace found in object header b'9' b'0' [pdf.py:1665]
PdfReadWarning: Superfluous whitespace found in object header b'10' b'0' [pdf.py:1665]
該当のソースコード
Python
1import shutil 2from openpyxl import load_workbook 3from PyPDF2 import PdfFileMerger 4 5filepath1 = '.\test\PDF結合リスト.xlsx' 6dirpath1 = '.\output' 7 8merger = PdfFileMerger() 9 10wb1 = load_workbook(filename = filepath1) 11ws1 = wb1['Sheet1'] 12 13list_row = 2 14 15for list_row in range(2,5): 16 if ws1.cell(row=list_row, column=1).value != None: 17 merger.append('.\test\' + ws1.cell(row=list_row, column=1).value) 18 merger.append('.\test\' + ws1.cell(row=list_row, column=2).value) 19 20 new_filename = ws1.cell(row=list_row, column=3).value 21 22 merger.write('.\test\' + new_filename) 23 shutil.move('.\test\' + new_filename, dirpath1)
試したこと
おそらくfor文とappendの処理をうまくやれていないのだと思い、appendの処理内容を
for文で繰り返す前に初期化できないか、あるいは、append以外方法でのPDF結合の方法がないか
調べましたが、解決策を見つけることができませんでした。
ご教示頂けますと幸いです。
補足情報(FW/ツールのバージョンなど)
anacondaで作成した仮想環境のspyderで実行した
Windows 10
Anaconda 2020年7月版
python 3.8.5
回答1件
あなたの回答
tips
プレビュー