- A+
所属分类:未分类
pdftk 命令提供了许多处理 PDF 的命令行操作,包括合并页面、加密文件、添加水印、压缩文件,甚至还有修复 PDF。
安装:
我这里是centos7 64位的,直接rpm安装如下:
$ yum install gcc gcc-java libgcj libgcj-devel gcc-c++ $ yum localinstall https://www.linuxglobal.com/static/blog/pdftk-2.02-1.el7.x86_64.rpm
也可以采用编译安装
$ yum install gcc gcc-java libgcj libgcj-devel gcc-c++ $ wget https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/pdftk-2.02-src.zip $ unzip pdftk-2.02-src.zip $ cd pdftk-2.02-dist/pdftk $ make -f Makefile.Redhat $ make -f Makefile.Redhat install
默认安装路径在 /usr/local/bin
如果编译错误如下: gcj: Internal error: Killed (program jc1), 则可能是您没有足够的计算机内存。我们在只有1GB内存的虚拟机上看到了这个错误。
用例:
1:加密
$ pdftk a.pdf output o.pdf user_pw 123456
加密参数选项提供 40(encrypt_40bit)和 128(encrypt_128bit)位加密。默认情况下使用 128 位加密。
如果使用40位加密则如下:
$ pdftk a.pdf output o.pdf encrypt_40bit user_pw 123456
2:文件合并
$ pdftk 1.pdf 2.pdf 3.pdf cat output a.pdf
a.pdf 将包含上面显示的所有五个文档,命令将在几秒钟内运行完毕。请注意,cat 选项表示将文件连接在一起,output 选项指定新文件的名称。
或者
$ pdftk A=1.pdf B=2.pdf cat A B output a.pdf
或者通配批量合并
$ pdftk *.pdf cat output o.pdf
将从一个包含奇数页(1、3 等)的文件和一个包含偶数页(2、4 等)的文件创建一个整合文档,如下:
$ pdftk A=1.pdf B=2.pdf shuffle A B output o.pdf
3:文件拆分
将 PDF 文件分成单个页面,如下:
$ pdftk a.pdf burst
结果如下:
[root@k3s pdf]# pdftk a.pdf burst [root@k3s pdf]# ls a.pdf pg_0010.pdf pg_0021.pdf pg_0032.pdf pg_0043.pdf pg_0054.pdf pg_0065.pdf pg_0076.pdf pg_0087.pdf pg_0098.pdf doc_data.txt pg_0011.pdf pg_0022.pdf pg_0033.pdf pg_0044.pdf pg_0055.pdf pg_0066.pdf pg_0077.pdf pg_0088.pdf pg_0099.pdf pg_0001.pdf pg_0012.pdf pg_0023.pdf pg_0034.pdf pg_0045.pdf pg_0056.pdf pg_0067.pdf pg_0078.pdf pg_0089.pdf pg_0100.pdf pg_0002.pdf pg_0013.pdf pg_0024.pdf pg_0035.pdf pg_0046.pdf pg_0057.pdf pg_0068.pdf pg_0079.pdf pg_0090.pdf pg_0101.pdf pg_0003.pdf pg_0014.pdf pg_0025.pdf pg_0036.pdf pg_0047.pdf pg_0058.pdf pg_0069.pdf pg_0080.pdf pg_0091.pdf pg_0004.pdf pg_0015.pdf pg_0026.pdf pg_0037.pdf pg_0048.pdf pg_0059.pdf pg_0070.pdf pg_0081.pdf pg_0092.pdf pg_0005.pdf pg_0016.pdf pg_0027.pdf pg_0038.pdf pg_0049.pdf pg_0060.pdf pg_0071.pdf pg_0082.pdf pg_0093.pdf pg_0006.pdf pg_0017.pdf pg_0028.pdf pg_0039.pdf pg_0050.pdf pg_0061.pdf pg_0072.pdf pg_0083.pdf pg_0094.pdf pg_0007.pdf pg_0018.pdf pg_0029.pdf pg_0040.pdf pg_0051.pdf pg_0062.pdf pg_0073.pdf pg_0084.pdf pg_0095.pdf pg_0008.pdf pg_0019.pdf pg_0030.pdf pg_0041.pdf pg_0052.pdf pg_0063.pdf pg_0074.pdf pg_0085.pdf pg_0096.pdf pg_0009.pdf pg_0020.pdf pg_0031.pdf pg_0042.pdf pg_0053.pdf pg_0064.pdf pg_0075.pdf pg_0086.pdf pg_0097.pdf
4:删除指定页
比如我们要删除第11页,如下:
$ pdftk a.pdf cat 1-10 12-end output o.pdf
或者
$ pdftk A=a.pdf cat A1-10 A12-end output o.pdf
5:提取指定页
将a.pdf中的1,2,3,5页提取创建新文件o.pdf,如下:
$ pdftk a.pdf cat 1-3 5 output o.pdf
6:导出元数据和书签
将PDF文档元数据和书签的报告写入report.txt
$ pdftk a.pdf dump_data output report.txt
- 安卓客户端下载
- 微信扫一扫
- 微信公众号
- 微信公众号扫一扫