- 创建与发布: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 表单相关的内容。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。