说明
- 这是一个比较麻烦的方法,但相对而言自由度高一些。若没有特殊要求,可以考虑用网上现成的工具,比如 PDF24。
- 本方法适用于 Windows 和 Linux。
原理概述
先生成一个只包含页码的 PDF 文档,再将其作为水印覆盖到需要加页码的文档上。
所需工具
- pdftk
必须,用来将页码 PDF 覆盖到待处理 PDF 上
https://github.com/MeteorPackaging/pdftk - PDF Arranger
可选,用来调整页码 PDF 文档
https://github.com/pdfarranger/pdfarranger - 支持 VBA 的 MS Word(在 Linux 系统上,可以用 WPS for Linux 替代)
必须,用来制作页码 PDF 文档
操作方法
1 准备一个页码文档
打开 MS Word,按 Alt + F11
打开宏编辑器,然后点击 插入 → 模块,在打开从代码窗口中粘贴如下命令:
Sub InsertBlankPages()
Dim i As Integer
' 循环5次,插入5个空白页
For i = 1 To 5
' 插入分页符
Selection.InsertBreak Type:=wdPageBreak
Next i
End Sub
注意代码第 5 行,请根据需求填写。如果您需要制作一个 n 页的页码文档,请将该行改为
For i in 1 To n-1
,其中 n 为整数。注意一定是 n-1,因为目前我们已经有一个空白页了,我们需要 n 页,因此只需再插入 n-1 各空白页。
写好后,在弹出窗口左侧选择 “InsertBlankPages”(就是咱们刚刚编写的宏),再点击 “运行”。
然后,回到 Word 窗口,插入页码并调整格式。一切就绪后将文档保存为 页码.pdf
。
准备好后,还可以用 PDF Arranger 编辑
页码.pdf
,比如在第一页插个空白页,因为有些文档的封面是不需要页码的。
2 把页码叠加到待处理文档上
将 页码.pdf
和待处理的文档(这里我们称之为 待处理.pdf
)放在同一文件夹下,然后打开命令行窗口,执行如下命令:
pdftk 待处理.pdf multistamp 页码.pdf output 输出.pdf
那个 输出.pdf
就是添加了页码的 PDF 文档。
方法的优势
这个方法很麻烦,但我认为它还是有一些优势的:
- 页码的自由度比较高。因为是拿 Word 或 WPS 做的,你可以自定义页码的字体、字号、颜色等。而且还可以根据需求让个别页面不加页码。
- 完全离线,不依赖在线服务,对一些涉密、无网络的环境比较友好。