本文介绍把单个pdf文件按页分割为若干个的方法。
按页分割以后的每个pdf文件含有1页内容。选择这些pdf中的部分,按 多个pdf文件拼接或合并为单一文件 https://zhuanlan.zhihu.com/p/655675268 的方法,就可以实现从某个pdf文件中选择任意页面重新组合为新的pdf。
方法1 ImageMagick
ImageMagick https://imagemagick.org/ 有个工具convert,适合做各种格式转换,也可以用于切割PDF文件。
用法示例如下,命令行:
c:\tools\ImageMagick\convert -density 300 input.pdf[1] x-%0d.pdf
或
c:\tools\ImageMagick\convert -density 300 input.pdf[1-3] x-%0d.pdf
或
c:\tools\ImageMagick\convert -density 300 input.pdf[0] x-%0d.jpg
其中
(1)c:\tools\ImageMagick\convert 是可执行程序及所在路径;
(2)-density 300 是分辨率,单位DPI 像素每英寸;
(3)input.pdf 是待分割的输入文件;
(4)input.pdf 后面的[1]或[1-3] 方括号中是提取的页码或页码范围,从0开始计数;
(5)x-%0d.jpg 是输出的一系列文件的命名规则,x- 1位数字 .jpg。
下述指令
c:\tools\ImageMagick\convert -density 300 input.pdf[1-3] x-%0d.pdf
会提取 input.pdf 的第1、2、3页,生成如下新文件。
x-1.pdf x-2.pdf x-3.pdf
方法2 GhostScript
另一个方法速度更快,生成文件更小,文字可选。使用工具是 GhostScript,简称gs,在https://www.ghostscript.com/ 下载。
用法示例如下,命令行:
"C:\Program Files\gs\gs9.55.0\bin\gswin64c.exe" -sDEVICE=pdfwrite -dSAFER -o output.%00d.pdf input.pdf
或
"C:\Program Files\gs\gs9.55.0\bin\gswin64c.exe" -dNOPAUSE -dQUIET -dBATCH -sOutputFile=output%00d.pdf -dFirstPage=1 -dLastPage=3 -sDEVICE=pdfwrite input.pdf
或
"C:\Program Files\gs\gs9.55.0\bin\gswin64c.exe" -dNOPAUSE -dQUIET -dBATCH -sOutputFile=output%00d.pdf -sPageList=1,2,4-7 -sDEVICE=pdfwrite input.pdf
其中
(1)命令 "C:\Program Files\gs\gs9.55.0\bin\gswin64c.exe" 是在我机器上可执行程序的路径和文件名;
(2)输出格式等 -sDEVICE=pdfwrite -dSAFER 和 -dNOPAUSE -dQUIET -dBATCH 等,原样照抄,我们不讨论这些细节;
(3)输出文件 -o output.%00d.pdf 或 -sOutputFile=output%00d.pdf输出文件的一系列文件命名规律,这里是 output. 至多2位数字.pdf;
(4)提取页面范围 -dFirstPage=1 -dLastPage=3 或 -sPageList=1,2,4-7,分别指定起始页第1页(从第1页开始计数)、最后一页(第3页),或者 1,2,4-7 表示 第1页、第2页、第4页~第7页;
(5)输入文件 input.pdf。
附,合并多个PDF文件的方法在这里 https://zhuanlan.zhihu.com/p/655675268。