The documentation for PyPDF2 states that it's possible to add nested bookmarks to PDF files, and the code appears (upon reading) to support this.
Adding a bookmark to the root tree is easy (see code below), but I can't figure out what I need to pass as the parent argument to create a nested bookmark. I want to create a structure something like this:
Group A
Page 1
Page 2
Group A
Page 3
Page 4
Is this possible?
Sample code to add a bookmark to the root of the tree:
#!/usr/bin/env python
from PyPDF2 import PdfFileWriter, PdfFileReader
output = PdfFileWriter() # open output
input = PdfFileReader(open('input.pdf', 'rb')) # open input
output.addPage(input.getPage(0)) # insert page
output.addBookmark('Hello, World', 0, parent=None) # add bookmark
解决方案
The addBookmark method returns a reference to the bookmark it created, which can be used as the parent to another bookmark. e.g.
#!/usr/bin/env python
from PyPDF2 import PdfFileWriter, PdfFileReader
output = PdfFileWriter()
input1 = PdfFileReader(open('introduction.pdf', 'rb'))
output.addPage(input1.getPage(0))
input2 = PdfFileReader(open('hello.pdf', 'rb'))
output.addPage(input2.getPage(0))
parent = output.addBookmark('Introduction', 0) # add parent bookmark
output.addBookmark('Hello, World', 0, parent) # add child bookmark