给PDF添加目录

前不久发现一本 Linux 相关的书籍,叫《Linux就该这么学》,下载了 PDF 之后,发现没有目录,难以理解,所以自己动手添加了一下目录,将添加的方法做一下记录。

《Linux就该这么学》基于最新的 Linux 系统 RHEL 7 编写而成,而且配套软件及资料完全免费,课程面向 Linux 新手。本书会从零基础带领读者入门 Linux 系统,然后渐进式地提高内容难度,使其匹配生产环境对运维人员的要求。

《Linux就该这么学》下载详见资源下载

一、PDF EXPERT

Mac 下最好用 PDF 软件,软件收费,但是可以免费试用 7 天,试用期间无功能限制。

下图展示了如何添加目录:

添加目录

操作很简单,但是推荐的步骤如下:

  • 生成所有的一级目录
  • 生成二级和三级目录
  • 将二级目录拖入到对应的一级目录
  • 以此类推

PDF EXPERT 的优点如下:

  • 快速生成目录
  • 调整目录层级很方便
  • 保存速度极快

二、Foxit Reader

操作与 PDF EXPERT 类似,相比 PDF EXPERT,Foxit Reader的缺点如下:

  • 不能快速调整目录顺序
  • 保存慢

三、WPS

不推荐 WPS,因为只能添加一级目录,而且无法拖拽目录使其成为二级目录。

总结

综上,推荐使用 PDF EXPERT,而且除了添加目录之外,PDF EXPERT 还有很多强大的功能,有待慢慢探索。

展示一下本人制作的《Linux就该这么学》的部分目录,下载详见资源下载

部分目录
欢迎访问的个人博客:掘墓人的小铲子

要给 PDF 添加目录,可以使用 Python 中的 PyPDF2 库。以下是一个简单的示例代码: ```python import PyPDF2 # 打开 PDF 文件 pdf_file = open('example.pdf', 'rb') pdf_reader = PyPDF2.PdfFileReader(pdf_file) # 创建 PDF writer 对象 pdf_writer = PyPDF2.PdfFileWriter() # 将 PDF 中的所有页面复制到新的 PDF 中 for page_num in range(pdf_reader.numPages): pdf_writer.addPage(pdf_reader.getPage(page_num)) # 创建目录 toc = PyPDF2.pdf.Outlines() toc_title = PyPDF2.pdf.OutlineTitle("Contents") toc.append(toc_title) # 添加目录项 for page_num in range(pdf_reader.numPages): page = pdf_reader.getPage(page_num) title = "Page {}".format(page_num + 1) dest = pdf_writer.addBookmark(title, page, parent=toc_title) # 将目录添加PDFpdf_writer.addBookmark("Table of Contents", 0, parent=None) pdf_writer.addBookmark(toc_title.title, 0, parent=None) pdf_writer.addPageLabel(0, PyPDF2.pdf.PageLabel(start=1, prefix='', numberingStyle=PyPDF2.pdf.PageLabelStyle.upperRoman)) pdf_writer.addOutline(toc) # 写入新的 PDF 文件 output_file = open('example_with_toc.pdf', 'wb') pdf_writer.write(output_file) # 关闭文件 output_file.close() pdf_file.close() ``` 这个代码会打开名为 `example.pdf` 的 PDF 文件,然后将其所有页面复制到一个新的 PDF 文件中。然后,它会创建一个目录,并为每一页添加一个目录项。最后,它将目录添加PDF 中,并将新的 PDF 文件保存为 `example_with_toc.pdf`。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值