pdftk工具

2021-03-05

ILLUSTRATION

pdftk工具

PDFtk is a simple tool for doing everyday things with PDF documents. It comes in three flavors: PDFtk Free, PDFtk Pro, and our original command-line tool PDFtk Server.

安装

ubuntu apt安装

1
2
3
sudo add-apt-repository ppa:malteworld/ppa
sudo apt update
sudo apt install pdftk

这种方式我失败了, 应该是被废弃了

snap安装

1
sudo snap install pdftk

编译安装

不建议编译安装, 不如去找找有没有其它工具

1
2
3
4
5
6
7
8
sudo apt install default-jre-headless libcommons-lang3-java libbcprov-java
sudo apt install git default-jdk-headless ant libcommons-lang3-java libbcprov-java
git clone https://gitlab.com/pdftk-java/pdftk.git
cd pdftk
mkdir libs
ln -st libs /usr/share/java/{commons-lang3,bcprov}.jar
ant jar
java -jar build/jar/pdftk.jar --help

安装完成:

image-20210305191949195

使用

取出(分割)

1
pdftk <原pdf路径> cat <页码> output <取出文档路径(名字)>

示例:

1
pdftk original.pdf cat 1-96 98-end output part1.pdf

分割则多取出几次即可, 如果觉得这样一个个取很费劲, 可以借助bash脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#!/bin/bash

f=$1
dir=${f%????}
name=${dir##*/}
mkdir "$dir"

pre=1
t=0
for i in "$@"
do
if [ $t -eq 0 ]
then
let t=$t+1
continue
fi
pdftk "$f" cat "$pre-$i" output "$dir/$name.part$t.pdf"
echo "finish $pre-$i"
let pre=$i+1
let t=$t+1
done

pdftk "$f" cat "$pre-end" output "$dir/$name.part$t.pdf"
echo "done"

使用:

1
2
./pdfsplit.sh <pdf路径> num1[ num2[ num3...]]]
# num为页码号

image-20210306105330280

合并

1
pdftk <pdf路径>[ pdf路径...] cat output <合成pdf路径(名字)>

举例:

1
pdftk file1.pdf file2.pdf cat output new.pdf