使用Python脚本和PyPDF库来批量添加多级书签。
import pypdf
pdf_path = 'example.pdf'
output_path = 'example_with_bookmarks.pdf'
bookmarks = [
("Chapter 1", 1, [
("Section 1.1", 1, ),
("Section 1.2", 2, ),
("Section 1.3", 3, [
("Subsection 1.3.1", 3),
("Subsection 1.3.2", 4)
]),
("Section 1.4", 5)
]),
("Chapter 2", 7, [
("Section 2.1", 7, ),
("Section 2.2", 8, ),
("Section 2.3", 9, [
("Subsection 2.6.1", 9),
("Subsection 2.6.2", 10)
])
])
]
# 读取PDF文件
with open(pdf_path, 'rb') as input_pdf:
pdf_reader = pypdf.PdfReader(input_pdf)
pdf_writer = pypdf.PdfWriter()
# 复制页面
for page in pdf_reader.pages:
pdf_writer.add_page(page)
# 添加书签
def add_bookmarks(bookmarks, parent=None):
for bookmark in bookmarks:
title, page_num, *children = bookmark
bookmark_item = pdf_writer.add_outline_item(title, page_num, parent)
if children:
add_bookmarks(children[0], bookmark_item)
add_bookmarks(bookmarks)
# 写入新的PDF文件
with open(output_path, 'wb') as output_pdf:
pdf_writer.write(output_pdf)