挿入前フォルダ内にある各PDFファイルの3ページ目に、「A].PDFを挿入して
ファイル名を挿入前と同じファイル名で保存したい。
連続処理を行いたいのですが、エラーとなってしまい悩んでおります。
ご教授いただければ幸いです。
python
1 2import glob 3import PyPDF2 4 5files = glob.glob(r'C:\PDF挿入\挿入前*.pdf') 6merger = PyPDF2.PdfFileMerger(strict=False) 7 8for i in files: 9 merger.append(i) 10 merger.merge(2, 'C:\PDF挿入\A.pdf') 11 12 merger.write(r'C:\PDF挿入\挿入後****.pdf') #←挿入前と同じPDFファイル名で保存させたい。 13 merger.close()
エラー内容は下記となります。
addpageの引数がエラーとなっています。
ファイルが一つしかない場合は、この引数にファイルパスを入力すればよいのですが、
ディレクトリ内の複数あるPDFにはエラーとなってしまうようです。
保存先に関しては、C:\PDF挿入\挿入後フォルダに挿入前と同じファイル名で保存したいのですが、その方法が分からないため※※※※で表記してあります。
python
1--------------------------------------------------------------------------- 2AttributeError Traceback (most recent call last) 3<ipython-input-3-72ca3ec7b122> in <module> 4 3 merger.merge(2, 'C:\PDF挿入\A.pdf') 5 4 6----> 5 merger.write(r'C:\PDF挿入\挿入後\000.pdf') 7 6 merger.close() 8 7 9 10~\anaconda3\lib\site-packages\PyPDF2\merger.py in write(self, fileobj) 11 218 # The commented out line below was replaced with the two lines below it to allow PdfFileMerger to work with PyPdf 1.13 12 219 for page in self.pages: 13--> 220 self.output.addPage(page.pagedata) 14 221 page.out_pagedata = self.output.getReference(self.output._pages.getObject()["/Kids"][-1].getObject()) 15 222 #idnum = self.output._objects.index(self.output._pages.getObject()["/Kids"][-1].getObject()) + 1 16 17AttributeError: 'NoneType' object has no attribute 'addPage'
下記のコードで元のPDFを挿入後、元のファイル名で保存することに成功しましたが、成功するのは最初のPDFのみで、
ディレクトリ内にある2番目以降のPDFは上手く処理できませんでした。
python
1import glob 2import PyPDF2 3 4files = glob.glob(r'C:\PDF挿入\挿入前*.pdf') 5merger = PyPDF2.PdfFileMerger(strict=False) 6 7for i in files: 8 merger.append(i) 9 merger.merge(2, 'C:\PDF挿入\A.pdf') 10 11 file_name = r'C:\PDF挿入\挿入後' + "/" + os.path.basename(i) 12 13 merger.write(file_name) 14 merger.close()
エラーは下記です。解決方法が分からず悩んでおります。
python
1--------------------------------------------------------------------------- 2AttributeError Traceback (most recent call last) 3<ipython-input-3-6deca51f3d5a> in <module> 4 12 5 13 6---> 14 merger.write(file_name) 7 15 merger.close() 8 16 9 10~\anaconda3\lib\site-packages\PyPDF2\merger.py in write(self, fileobj) 11 218 # The commented out line below was replaced with the two lines below it to allow PdfFileMerger to work with PyPdf 1.13 12 219 for page in self.pages: 13--> 220 self.output.addPage(page.pagedata) 14 221 page.out_pagedata = self.output.getReference(self.output._pages.getObject()["/Kids"][-1].getObject()) 15 222 #idnum = self.output._objects.index(self.output._pages.getObject()["/Kids"][-1].getObject()) + 1 16 17AttributeError: 'NoneType' object has no attribute 'addPage'
実際のソースでも
merger.write(r'C:\PDF挿入\挿入後\****.pdf')
というコードで保存しようとしているのでしょうか?そうでない場合、実際のソースで書いているままにした方が良いかと思います。
また、どういったエラーが表示されるかも併記しておくと回答が得られやすいかと思います。
回答1件
あなたの回答
tips
プレビュー