使用 pdfrw 创建和操作 PDF

  • 创建与发布:patrick maupin 于 2012 年创建并发布了 pdfrw 包,这是一个纯 Python 库,可用于读取和写入 PDF 文件,当时版本为 0.4,支持在 PDF 中进行子集化、合并、旋转和修改数据等操作。
  • 安装:可使用 pip 安装 pdfrw,命令为python -m pip install pdfrw
  • 从 PDF 中提取信息:pdfrw 提取数据的方式与 pypdf2 不同,它能获取 info 对象但显示方式不太友好。示例中使用pdfreader类读取w9.pdf文件,可获取其 keys、info、root 及页数等信息。
  • 拆分 PDF:通过split函数可将 PDF 拆分,例如从书籍中提取封面或章节等。以reportlab-sample.pdf为例,指定要提取的页数和输出路径,可将指定页数的页面提取出来并保存为新的 PDF。
  • 合并/连接 PDF:使用concatenate函数可轻松合并多个 PDF,遍历路径列表,打开文件并将所有页面添加到 writer 对象,还可添加 trailer 信息,最后将合并后的 PDF 写入磁盘。
  • 旋转页面rotate_odd函数可提取输入 PDF 的奇数页并旋转 90 度,通过遍历页面,判断是否为奇数页,若为奇数则旋转并添加到 writer 对象,最后写入输出文件。
  • 覆盖/水印页面watermarker函数可使用 pdfrw 为 PDF 添加水印,打开基础 PDF 和水印 PDF,提取水印页面,遍历基础 PDF 的页面,创建pagemerge对象并覆盖水印,最后写入合并后的 PDF。
  • 缩放页面get4函数来自4up.py脚本,可将页面缩小并定位在一页上,scale_pdf函数接收输入 PDF 和输出路径,循环处理页面并调用get4函数,将结果添加到 writer 对象并写入磁盘。
  • 结合 pdfrw 和 reportlab:pdfrw 能与 reportlab 工具包集成,有多个示例展示不同的使用方式,如创建 PDF 的子集、将 pre-existing PDF 的页面作为 reportlab 新 PDF 的背景等。
  • 总结:pdfrw 功能强大,有与 pypdf2 不同的功能,能与 reportlab 集成创建有趣的内容,值得添加到工具包中,相关阅读可参考 pdfrw 的 GitHub 页面、快速介绍及与 PDF 表单相关的内容。
阅读 4
0 条评论