提问人:Easynow 提问时间:11/11/2023 最后编辑:Easynow 更新时间:11/11/2023 访问量:43
Python PyPDF2 添加目录
Python PyPDF2 add table of contents
问:
我已经能够使用 PyPDF2 来组合 PDF 并创建书签。是否可以使用 PyPDF2 将超链接目录页面添加到组合文件中?
感谢您的回复。使用您的建议,我可以创建一个 ToC,然后可以与我的 PDF 合并,但问题是 ToC 中指向尚不存在的页面的内部链接会导致错误。
代码如下:
from fpdf import FPDF
pdf = FPDF()
pdf.set_font("helvetica", size=24)
pdf.add_page()
link = pdf.add_link(page=3)
pdf.cell(text="Internal link to first page", border=0, link=link,ln=2)
link = pdf.add_link(page=4)
pdf.cell(ln=1,text="Internal link to first page", border=0, link=link)
pdf.output("C:/cont/hyperlink1.pdf")
这会导致以下错误:
文件“C:\Users\andre\anaconda\lib\site-packages\fpdf\output.py”,第 416 行,在缓冲区中 f“对页面 {page_obj.index()} 上不存在的页面 {dest.page_number} 的引用无效:”
ValueError:对第 1 页上不存在的第 3 页的无效引用:
答:
0赞
Martin Thoma
11/11/2023
#1
PyPDF2 已弃用。用。pypdf
您可以使用 和 fpdf2
的组合来创建它:pypdf
- 创建包含目录 (ToC) 文本的单个(或多个)页面
fpdf2
- 用于将 ToC 合并到原始文档中
pypdf
- 通过 pypdf 添加
链接
注释
请注意,您仍然需要知道 ToC 应该是什么样子以及它应该链接到哪里。
另请注意,两者都在组织中。这些项目仍然各不相同,但我们相互支持(非常感谢 LucasC,他是 fpdf2 的维护者,并大大改进了 pypdf)。pypdf
fpdf2
py-pdf
评论
0赞
Easynow
11/11/2023
感谢您的回复,我已经设法使用 pdfp2 创建了一个包含内部链接的新 PDF。然后,我可以使用 PyPDF 将此 ToC 与我现有的 PDF 相结合。问题是我无法创建指向尚不存在的页面的内部链接。
0赞
Martin Thoma
11/13/2023
您是否按照我编写的顺序执行了我描述的三个步骤?
评论