开源软件

使用 pdftk-java 来编辑 PDF 吧!

在阅读技术资料或者其他书籍的时候,会需要处理大量 PDF 的文件。虽然 PDF 不是一个可以被编辑的格式,但很多时候我们还是需要在最后打印或发送之前对其进行一些格式或内容上的调整。这时就可以用到 pdftk-java 工具了。

Linux 上安装 pdftk-java

顾名思义,pdftk-java 是用 Java 编写的,所以只要安装了 Java,就可以运行 pdftk-java。

安装 pdftk-java:

  • 下载 PDFTK-all.jar

  • 打开 ~/.bashrc 并在其中添加

    alias pdftk='java -jar $HOME/.local/bin/pdftk-all.jar'

  • 加载新的 Bash 配置

    $ source ~/.bashrc

pdftk-java 命令的语法

pdftk-java 命令由四个部分构成,只需要稍加练习就能灵活使用。

  • pdftk:调用程序
  • input file:要修改的 PDF 位置
  • action:对输入文件的操作指令
  • output: 输出 PDF 位置

合并两个 PDF

比如你要给自己的文件加个封面,就会用到合并操作。在下面的演示中,是将 cover.pdf 和 body.pdf 按顺序合并,输出成 book.pdf 这一个文件。

$ pdftk cover.pdf body.pdf \
cat \
output book.pdf

在这里,是用 cat 作为操作指令,就像 Linux 中的 cat 命令一样,可以将一个或多个 PDF 文件连接到一个数据流中,并输出到 output 参数中指定的文件里。

删除页面

直接从 PDF 中删除页面是不可以的,但是可以创建一个新的不包括要删除页面的新 PDF。

$ pdftk book.pdf \
cat 1 3 -end \
output shorter-book.pdf

在这个示例代码中,将 book.pdf 中第一页和从第三页直到最后的页面都保存在新文件中,来实现删掉第二页的目的。

将 PDF 拆成单独的文件

要将一个完整的 PDF 文件拆开,也可以使用同样的 cat 操作,原理和删除页面相似:只需要把想要的页面单独输出就可以了。

$ pdftk book.pdf \
cat 1-15 \
output part-1.pdf

$ pdftk book.pdf \
cat 16-42 \
output part-2.pdf

如果你需要把 PDF 拆开成单页,可以使用一个新的指令:burst。

$ pdftk book.pdf burst

$ ls
book.pdf pg_0001.pdf pg_0002.pdf
pg_0003.pdf pg_0004.pdf pg_0005.pdf
[...]

填写表格

虽然大多数情况下 PDF 文件都不支持更改内容,但是也有一个例外:填写 PDF 表单。虽然大部分现代 PDF 查看器都可以做到,但用 pdftk-java 也可以实现这个操作。

首先,需要使用 generate_fdf 操作来从表单中提取数据。这个操作会把表单元素的 ID 提取出来并放入一个文本文件中。

$ pdftk character-sheet.pdf \
generate_fdf \
output chsheet-form.txt

在目标文件中将会包含 PDF 中包含的文本格式版本的表单数据,可以在任何标准文本编辑器中对其进行编辑。

输入好数据之后,可以用 fill_form 操作将其填充回去:

$ pdftk character-sheet.pdf \
fill_form chsheet-form.txt \
output completed.pdf

以下是结果示例:

用 pdftk-java 来让 PDF 操作更方便

用 shell 脚本处理大量 PDF 文件的时候,使用 pdftk-java 可以让你不用手动完成所有工作。只要写一个调用 pdftk-java 进行任务的 Makefile,就可以批量处理大量文件。当然,不止可以切割页面,还有更多的操作可以用,比如 shuffle、rotate、dump_data、update_info 和 attach_files。更多的指令可以在其 gitlab 中查到。


参考资料:
4 ways you can edit a PDF with the pdftk-java command

译者:Dark

对这篇文章感觉如何?

太棒了
0
不错
1
爱死了
0
不太好
0
感觉很糟
0

You may also like

Leave a reply

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

More in:开源软件

开源软件

来点更高雅的!用 Linux Sampler 演奏数字管弦乐

一直以来,音乐合成器都在尝试模拟真实的乐器。然而在技术的发展中,合成音乐家们发现如果想真正地捕获到乐器的美感,只能去录制他们的声音,再通过技术合成手段来获得想要的音乐。如果你想要为自己的游戏或者其他应用来配上一段优美的音乐,聘请管弦乐队显然是非常昂贵的。但通过 Linux Sampler 这个开源程序,或者再加上一个 MIDI 键盘,也是可以实现一段成功的演奏的。
开源软件

来点节奏感吧!在 Linux 上用 Hydrogen 敲鼓

借助现代科技,音乐不需要从乐器演奏出来,通过电子合成器就可以创作出优美的音乐。Hydrogen 应用是一个功能齐全并且开源的鼓音乐合成器,并且使用简单,无论新手还是专业人士都能够很快上手。