如何在 Linux 命令行上制作和合并 PDF 文件

PDF 文件旨在促进共享。每个人都可以打开它们——如果他们没有其他东西,可以在他们的网络浏览器中打开。 Linux 允许您在命令行上操作、合并和拆分 PDF 文件。
便携式文档格式
便携式文档格式 (PDF) 解决了一个问题。当您在计算机上创建文档并想与其他人共享时,将文档发送给他们并不总是有效。
即使他们拥有您用来创建文档的相同软件包,他们在计算机上安装的字体也可能与您在自己计算机上安装的字体不同。他们可以打开文档,但它看起来是错误的。
如果他们没有您用来创建软件包的软件副本,他们将根本无法打开它。如果你使用的软件只能在 Linux 上使用,那么将该文档发送给只使用 Windows 的人是毫无意义的。
Adobe 在 1992 年创建了一种新的文件格式,并将其称为可移植文档格式。按照该标准(ISO 32000)创建的文档包含正确呈现文件内容所需的图像和字体。 PDF 文件可以在任何平台上由 PDF 查看器打开。这是一个跨平台、简单而优雅的解决方案。
PDF 文件并不像文字处理器文档那样具有可塑性。他们不容易将自己借给编辑。如果您需要更改 PDF 的内容,最好返回源材料,对其进行编辑,然后生成新的 PDF。与尝试更改内容相比,可以相对轻松地对 PDF 文件执行结构操作。
这里有一些在 Linux 上创建 PDF 文件的方法,以及如何执行一些可以应用于它们的转换。
在 Linux 上创建 PDF 文件
Linux 上的许多应用程序都可以直接生成 PDF 文件。 LibreOffice 在工具栏右侧有一个按钮,可以生成当前文档的 PDF。再简单不过了。

对于 PDF 创建的细粒度控制,Scribus 桌面发布应用程序是无与伦比的。
如果您需要创建包含科学或数学内容的文档,也许是为了提交给学术期刊,那么使用 LaTeX 的应用程序(例如 Texmaker)将是您的最佳选择。
如果您更喜欢纯文本工作流程,也许使用 Markdown,则可以使用 pandoc
与多种文件格式(包括 PDF)相互转换。我们有一个专门针对 pandoc
的指南,但一个简单的示例将向您展示它的易用性。
首先安装 Texmaker。 pandoc
依赖于一些 LaTeX 库来生成 PDF。安装 Texmaker 是满足这些依赖关系的便捷方式。
-o
(输出)选项用于指定将创建的文件类型。 “raw-notes.md”文件是纯文本 Markdown 文件。
pandoc -o new.pdf raw-notes.md

如果我们在 PDF 查看器中打开“new.pdf”文件,我们会看到它是一个格式正确的 PDF。

qpdf 命令
qpdf
命令允许您操作现有的 PDF 文件,同时保留其内容。您可以进行的更改是结构性的。使用 qpdf
,您可以执行合并 PDF 文件、提取页面、旋转页面以及设置和删除加密等任务。
要在 Ubuntu 上安装 qpdf
,请使用以下命令:
sudo apt install qpdf

Fedora 上的命令是:
sudo dnf install qpdf

在 Manjaro 上你必须输入:
sudo pacman -S qpdf

合并 PDF 文件
起初,一些 qpdf
命令行语法可能看起来很混乱。例如,许多命令需要一个输入 PDF 文件。
如果命令不需要,则需要使用 --empty
选项。这告诉 qpdf
不要期待输入文件。 --pages
选项允许您选择页面。如果您只提供 PDF 名称,则会使用所有页面。
要将两个 PDF 文件组合成一个新的 PDF 文件,请使用此命令格式。
qpdf --empty --pages first.pdf second.pdf -- combined.pdf

该命令由以下部分组成:
- qpdf:调用
qpdf
命令。 - –empty:告诉
qpdf
没有输入 PDF。您可能会争辩说“first.pdf”和“second.pdf”是输入文件,但qpdf
认为它们是命令行参数。 - –pages:告诉
qpdf
我们将使用页面。 - first.pdf second.pdf:我们将从中提取页面的两个文件。我们没有使用页面范围,因此将使用所有页面。
- —:表示命令选项结束。
- combined.pdf:将创建的 PDF 的名称。
如果我们使用 ls
查找 PDF 文件,我们将看到我们的两个原始文件(未修改)和名为“combined.pdf”的新 PDF。
ls -hl first.pdf second.pdf combined.pdf

“first.pdf”中有两页,“second.pdf”中有一页。新的 PDF 文件有三页。

您可以使用通配符而不是列出大量源文件。此命令创建一个名为“all.pdf”的新文件,其中包含当前目录中的所有 PDF 文件。
qpdf --empty --pages *.pdf -- all.pdf

我们可以通过在要从中提取页面的文件名后面添加页码或范围来使用页面范围。
这将从“first.pdf”中提取第一页和第二页,从“second.pdf”中提取第二页。请注意,如果“combined.pdf”已经存在,则不会被覆盖。它已将选定的页面添加。
qpdf --empty --pages first.pdf 1-2 second.pdf 1 -- combined.pdf

页面范围可以尽可能详细。在这里,我们要求从一个大型 PDF 文件中获取一组非常具体的页面,并且我们正在创建一个摘要 PDF 文件。
qpdf --empty --pages large.pdf 1-3,7,11,18-21,55 -- summary.pdf

输出文件“summary.pdf”包含输入 PDF 文件的第 1 至 3、7、11、18 至 21 和 55 页。这意味着“summary.pdf”中有 10 页

我们可以看到第 10 页是源 PDF 中的第 55 页。
拆分 PDF 文件
合并 PDF 文件的反面是拆分 PDF 文件。要将 PDF 拆分为单独的 PDF 文件,每个文件包含一个页面,语法很简单。
我们要拆分的文件是“summary.pdf”,输出文件是“page.pdf”。这用作基本名称。每个新文件都有一个添加到基本名称的数字。 --split-pages
选项告诉 qpdf
我们正在执行什么类型的操作。
qpdf summary.pdf page.pdf --split-pages

输出是一系列按顺序编号的 PDF 文件。
ls page*.pdf

如果您不想拆分每个页面,请使用页面范围来选择您想要的页面。
如果我们发出下一个命令,我们将拆分出一组单页 PDF 文件。页面范围用于指定我们想要的页面或范围,但每个页面仍存储在单个 PDF 中。
qpdf large.pdf section.pdf --pages large.pdf 1-5,11-14,60,70-100 -- --split-pages

提取的页面的名称基于“section.pdf”并添加了序号。
ls section*.pdf

如果要提取页面范围并将其存储在单个 PDF 中,请使用此形式的命令。请注意,我们不包含 --split-pages
选项。实际上,我们在这里做的是 PDF 合并,但我们只是从一个源文件中“合并”页面。
qpdf --empty --pages large.pdf 8-13 -- chapter2.pdf

这将创建一个名为“chapter2.pdf”的单页多页 PDF。
旋转页面
要旋转页面,我们创建一个新的 PDF,它与旋转指定页面的输入 PDF 相同。
我们使用 --rotate
选项来执行此操作。 +90
表示将页面顺时针旋转 90 度。您可以将页面旋转 90、180 或 270 度。您还可以使用负数指定逆时针旋转度数,但几乎不需要这样做。旋转 -90 与旋转 +270 相同。
用冒号“:
”与轮换分隔的数字是您要轮换的页码。这可能是页码和页码范围的列表,但我们只是旋转第一页。要旋转所有页面,请使用 1-z
的页面范围。
qpdf --rotate=+90:1 summary.pdf rotated1.pdf

第一页已经为我们旋转。

加密和解密
PDF 文档可以加密,因此需要密码才能打开。该密码称为用户密码。更改 PDF 的安全和其他权限设置需要另一个密码。它称为所有者密码。
要加密 PDF,我们需要使用 --encrypt
选项并提供两个密码。用户密码在命令行中排在第一位。
我们还指定要使用的加密强度。如果你想支持非常老的 PDF 文件查看器,你只需要从 256 位加密降到 128 位。我们建议您坚持使用 256 位加密。
我们将创建一个名为“secret.pdf”的“summary.pdf”的加密版本。
qpdf --encrypt hen.rat.squid goose.goat.gibbon 256 -- summary.pdf secret.pdf

当我们尝试打开 PDF 时,PDF 查看器会提示我们输入密码。输入用户密码授权查看者打开文件。

请记住,qpdf
不会更改现有的 PDF。它根据我们要求它做出的改变创建了一个新的。因此,如果您制作加密的 PDF,您仍将拥有原始的未加密版本。根据您的情况,您可能想要删除原始 PDF 或将其安全地存储起来。
要解密文件,请使用 --decrypt
选项。显然,您必须知道所有者 密码才能正常工作。我们需要使用--password
选项来识别密码。
qpdf --decrypt --password=goose.goat.gibbon secret.pdf unlocked.pdf

“unlocked.pdf”无需密码即可打开。
qpdf 是一个优秀的工具
qpdf
给我们留下了深刻的印象。它提供了一个灵活且功能丰富的工具集来处理 PDF 文件。而且速度也非常快。
查看他们写得很好的详细文档,看看它还能做多少。