はじめに
備忘録としてのメモ。
ググっても答えに辿り着けなかったので、念のため残しておく。
問題点
PyMuPDF を使って PDF のコピーをするときに、まれに exception stack overflow!
が発生することがある。
- コード
new_doc = fitz.open()
new_doc.insertPDF(docsrc=old_doc, from_page=1, to_page=1)
- エラー
mupdf: exception stack overflow!
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
・
・
・
File "/Users/ijufumi/workspaces/python_sample/.venv/lib/python3.6/site-packages/fitz/fitz.py", line 3581, in insertPDF
val = _fitz.Document_insertPDF(self, docsrc, from_page, to_page, start_at, rotate, links, annots)
RuntimeError: exception stack overflow!
対応策
insertPDF
を実行する時に、 annots=False
を指定する。
- コード(修正後)
new_doc = fitz.open()
new_doc.insertPDF(docsrc=old_doc, from_page=1, to_page=1, annots=False)
原因
公式ドキュメントでは見つけられなかったけど、いくつかのアノテーションがあるとこの例外が発生する。
お願い
もし、公式ドキュメントなどで見つけた人がいましたら、コメント頂けると幸いです。