写在前面
最近想编辑个 PDF 的书签, 因为都是同级缩进, 不美观. 但是用了 acrobat Pro 之后还是不行, 提示
The document could not be saved. There was a problem reading this document (109).
搜了半天发现好像是 PDF 文件的问题, 所以用 acrobat 是不行了, 想想别的方法. 看到一篇文章用了 pymupdf, 试试.
收回之前文章的话, pymupdf 最新版 1.24.2 支持 arm 的, 之前不知道是怎么的安装失败了, 这次直接在 conda 的 python3.10 里面就安装好了.
使用
首先导出 PDF 的书签列表
import fitz
doc = fitz.open("input.pdf")
toc = doc.get_toc()
print(toc)
print(type(toc)) #list
直接改缩进级别为 2:
for i in toc:
if i[1][0].isdigit():
i[0] = 2
写入
doc.set_toc(toc)
doc.saveIncr()
此时就解决问题了..