PythonでPDFファイルへの書き込みを行おうとしています。
プログラムを実行するとエラーが表示され(エラーメッセージは後述します)、該当するPDFファイルのサイズが0KBとなり、壊れてしまいます。
PDFのバージョンが古いもの(1.2(Acrobat3.x)など)に関してはエラーが生じることなく書き込みができるため、バージョンの違いによって弾かれている可能性があるのかとも思っています。
また、Acrobatについてはバージョン2020.012.20043を用いています(こちらの権限等の影響なども考えられるのでしょうか)。
解決方法についてお知恵をお借りしたいです。
よろしくお願い致します。
Python
1import PyPDF2 2 3src_pdf=PyPDF2.PdfFileReader("Desktop\テスト/test.pdf") 4dst_pdf=PyPDF2.PdfFileWriter() 5dst_pdf.cloneReaderDocumentRoot(src_pdf) 6with open("Desktop\テスト/test.pdf","wb") as f: 7 dst_pdf.write(f)
エラーメッセージ
PdfReadError Traceback (most recent call last)
<ipython-input-14-709daf3e72b3> in <module>
5 dst_pdf.cloneReaderDocumentRoot(src_pdf)
6 with open("Desktop\テスト/test.pdf","wb") as f:
----> 7 dst_pdf.write(f)
~\anaconda3\lib\site-packages\PyPDF2\pdf.py in write(self, stream)
480 self.stack = []
481 if debug: print(("ERM:", externalReferenceMap, "root:", self._root))
--> 482 self._sweepIndirectReferences(externalReferenceMap, self._root)
483 del self.stack
484
~\anaconda3\lib\site-packages\PyPDF2\pdf.py in _sweepIndirectReferences(self, externMap, data)
569 self.stack.append(data.idnum)
570 realdata = self.getObject(data)
--> 571 self._sweepIndirectReferences(externMap, realdata)
572 return data
573 else:
~\anaconda3\lib\site-packages\PyPDF2\pdf.py in _sweepIndirectReferences(self, externMap, data)
545 for key, value in list(data.items()):
546 origvalue = value
--> 547 value = self._sweepIndirectReferences(externMap, value)
548 if isinstance(value, StreamObject):
549 # a dictionary value is a stream. streams must be indirect
~\anaconda3\lib\site-packages\PyPDF2\pdf.py in _sweepIndirectReferences(self, externMap, data)
575 if newobj == None:
576 try:
--> 577 newobj = data.pdf.getObject(data)
578 self._objects.append(None) # placeholder
579 idnum = len(self._objects)
~\anaconda3\lib\site-packages\PyPDF2\pdf.py in getObject(self, indirectReference)
1629 indirectReference.generation), utils.PdfReadWarning)
1630 #if self.strict:
-> 1631 raise utils.PdfReadError("Could not find object.")
1632 self.cacheIndirectObject(indirectReference.generation,
1633 indirectReference.idnum, retval)
PdfReadError: Could not find object.
回答1件
あなたの回答
tips
プレビュー