teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

3

コード修正

2021/11/17 09:58

投稿

monopoly_man
monopoly_man

スコア9

title CHANGED
File without changes
body CHANGED
@@ -60,7 +60,7 @@
60
60
  merger.append(i)
61
61
  merger.merge(2, 'C:\PDF挿入\A.pdf')
62
62
 
63
- file_name = r'C:\PDF_IN\挿入後' + "/" + os.path.basename(i)
63
+ file_name = r'C:\PDF挿入\挿入後' + "/" + os.path.basename(i)
64
64
 
65
65
  merger.write(file_name)
66
66
  merger.close()

2

エラー追記しました。

2021/11/17 09:58

投稿

monopoly_man
monopoly_man

スコア9

title CHANGED
File without changes
body CHANGED
@@ -45,4 +45,45 @@
45
45
  222 #idnum = self.output._objects.index(self.output._pages.getObject()["/Kids"][-1].getObject()) + 1
46
46
 
47
47
  AttributeError: 'NoneType' object has no attribute 'addPage'
48
+ ```
49
+
50
+ 下記のコードで元のPDFを挿入後、元のファイル名で保存することに成功しましたが、成功するのは最初のPDFのみで、
51
+ ディレクトリ内にある2番目以降のPDFは上手く処理できませんでした。
52
+ ```python
53
+ import glob
54
+ import PyPDF2
55
+
56
+ files = glob.glob(r'C:\PDF挿入\挿入前*.pdf')
57
+ merger = PyPDF2.PdfFileMerger(strict=False)
58
+
59
+ for i in files:
60
+ merger.append(i)
61
+ merger.merge(2, 'C:\PDF挿入\A.pdf')
62
+
63
+ file_name = r'C:\PDF_IN\挿入後' + "/" + os.path.basename(i)
64
+
65
+ merger.write(file_name)
66
+ merger.close()
67
+ ```
68
+
69
+ エラーは下記です。解決方法が分からず悩んでおります。
70
+
71
+ ```python
72
+ ---------------------------------------------------------------------------
73
+ AttributeError Traceback (most recent call last)
74
+ <ipython-input-3-6deca51f3d5a> in <module>
75
+ 12
76
+ 13
77
+ ---> 14 merger.write(file_name)
78
+ 15 merger.close()
79
+ 16
80
+
81
+ ~\anaconda3\lib\site-packages\PyPDF2\merger.py in write(self, fileobj)
82
+ 218 # The commented out line below was replaced with the two lines below it to allow PdfFileMerger to work with PyPdf 1.13
83
+ 219 for page in self.pages:
84
+ --> 220 self.output.addPage(page.pagedata)
85
+ 221 page.out_pagedata = self.output.getReference(self.output._pages.getObject()["/Kids"][-1].getObject())
86
+ 222 #idnum = self.output._objects.index(self.output._pages.getObject()["/Kids"][-1].getObject()) + 1
87
+
88
+ AttributeError: 'NoneType' object has no attribute 'addPage'
48
89
  ```

1

エラー内容を追記しました。

2021/11/17 09:57

投稿

monopoly_man
monopoly_man

スコア9

title CHANGED
File without changes
body CHANGED
@@ -18,4 +18,31 @@
18
18
 
19
19
  merger.write(r'C:\PDF挿入\挿入後****.pdf') #←挿入前と同じPDFファイル名で保存させたい。
20
20
  merger.close()
21
+ ```
22
+
23
+ エラー内容は下記となります。
24
+ addpageの引数がエラーとなっています。
25
+ ファイルが一つしかない場合は、この引数にファイルパスを入力すればよいのですが、
26
+ ディレクトリ内の複数あるPDFにはエラーとなってしまうようです。
27
+
28
+ 保存先に関しては、C:\PDF挿入\挿入後フォルダに挿入前と同じファイル名で保存したいのですが、その方法が分からないため※※※※で表記してあります。
29
+
30
+ ```python
31
+ ---------------------------------------------------------------------------
32
+ AttributeError Traceback (most recent call last)
33
+ <ipython-input-3-72ca3ec7b122> in <module>
34
+ 3 merger.merge(2, 'C:\PDF挿入\A.pdf')
35
+ 4
36
+ ----> 5 merger.write(r'C:\PDF挿入\挿入後\000.pdf')
37
+ 6 merger.close()
38
+ 7
39
+
40
+ ~\anaconda3\lib\site-packages\PyPDF2\merger.py in write(self, fileobj)
41
+ 218 # The commented out line below was replaced with the two lines below it to allow PdfFileMerger to work with PyPdf 1.13
42
+ 219 for page in self.pages:
43
+ --> 220 self.output.addPage(page.pagedata)
44
+ 221 page.out_pagedata = self.output.getReference(self.output._pages.getObject()["/Kids"][-1].getObject())
45
+ 222 #idnum = self.output._objects.index(self.output._pages.getObject()["/Kids"][-1].getObject()) + 1
46
+
47
+ AttributeError: 'NoneType' object has no attribute 'addPage'
21
48
  ```