很晚了,但经过一番挖掘并在@Eugene 的提示下,我找到了解决方案。
你必须对源代码做一些小的调整:
(针对 1.26.0 版本测试)
PyPDF2/pdf.py:
将方法addBookmark(~第690行)的定义更改为:
def addBookmark(self, title, pagenum, parent=None, color=None, bold=False, italic=False, fit='/Fit', collapse=False, *args):
(添加参数collapse=False)
然后在同一方法的最后将行(~第 750 行)更改为:
parent.addChild(bookmarkRef, self, collapse)
(添加折叠)
PyPDF2/generic.py
>
现在我们必须调整 addChild 方法(~ 第 665 行):
def addChild(self, child, pdf, collapse=False):
(再次添加参数collapse=False)
然后以相同的方法交换行(~第677行):
self[NameObject('/Count')] = NumberObject(self[NameObject('/Count')] + 1)
与
if collapse: self[NameObject('/Count')] = NumberObject(self[NameObject('/Count')] - 1)
else: self[NameObject('/Count')] = NumberObject(self[NameObject('/Count')] + 1)
就是这样!
用法
如果您现在使用参数“collapse=True”调用方法“addBookmark()”,所有书签都将关闭。