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

已发表: 2022-09-24
简凯利/Shutterstock.com

PDF 文件旨在促进共享。 每个人都可以打开它们——如果他们没有其他东西的话,可以在他们的网络浏览器中打开。 Linux 允许您在命令行上操作、合并和拆分 PDF 文件。

目录

便携式文档格式
在 Linux 上创建 PDF 文件
qpdf 命令
合并 PDF 文件
拆分 PDF 文件
旋转页面
加密和解密
qpdf 是一个优秀的工具

便携式文档格式

可移植文档格式 (PDF) 解决了一个问题。 当您在计算机上创建文档并想与其他人共享时,将文档发送给他们并不总是有效。

即使他们拥有您用来创建文档的相同软件包,他们的计算机上安装的字体也可能与您在他们的计算机上安装的字体不同。 他们可以打开文档,但它看起来不对。

如何在 Linux 上安装 Google 和 Microsoft 字体
相关如何在 Linux 上安装 Google 和 Microsoft 字体

如果他们没有您用来创建软件包的软件副本,他们将根本无法打开它。 如果您使用仅在 Linux 上可用的软件,那么将该文档发送给仅使用 Windows 的人是没有意义的。

Adobe 在 1992 年创建了一种新的文件格式,并将其称为可移植文档格式。 根据该标准(ISO 32000)创建的文档包含正确呈现文件内容所需的图像和字体。 PDF 文件可以在任何平台上由 PDF 查看器打开。 这是一个跨平台、简单且优雅的解决方案。

PDF 文件并不像文字处理器文档那样具有延展性。 他们不容易进行编辑。 如果您需要更改 PDF 的内容,最好返回源材料,对其进行编辑并生成新的 PDF。 与尝试更改内容相比,可以相对轻松地对 PDF 文件执行结构操作。

以下是在 Linux 上创建 PDF 文件的一些方法,以及如何执行一些可以应用于它们的转换。

在 Linux 上创建 PDF 文件

Linux 上可用的许多应用程序可以直接生成 PDF 文件。 LibreOffice 在工具栏右侧有一个按钮,用于生成当前文档的 PDF。 这再简单不过了。

LibreOffice Writer PDF 按钮

对于 PDF 创建的细粒度控制,Scribus 桌面出版应用程序是无可匹敌的。

如果您需要创建具有科学或数学内容的文档,也许是为了提交给学术期刊,使用 LaTeX 的应用程序(例如 Texmaker)将是您的完美选择。

如何在 Linux 命令行上使用 pandoc 转换文件
相关如何在 Linux 命令行上使用 pandoc 转换文件

如果您更喜欢纯文本工作流程,也许使用 Markdown,您可以使用pandoc来转换和转换包括 PDF 在内的许多文件格式。 我们有一个专门针对pandoc的指南,但一个简单的示例将向您展示它是多么容易使用。

首先安装 Texmaker。 pandoc依赖于一些 LaTeX 库来生成 PDF。 安装 Texmaker 是满足这些依赖关系的便捷方式。

-o (输出)选项用于指定将创建的文件类型。 “raw-notes.md”文件是一个纯文本的 Markdown 文件。

 pandoc -o new.pdf raw-notes.md 

使用 pandoc 从 Markdown 文件创建 PDF

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

打开由 pandoc 创建的 PDF

qpdf 命令

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

要在 Ubuntu 上安装qpdf ,请使用以下命令:

 sudo apt install qpdf 

在 Ubuntu 上安装 qpdf

Fedora 上的命令是:

 须藤 dnf 安装 qpdf 

在 Fedora 上安装 qpdf

在 Manjaro 上,您必须输入:

 sudo pacman -S qpdf 

在 Manjaro 上安装 qpdf

合并 PDF 文件

起初,一些qpdf命令行语法可能看起来令人困惑。 例如,许多命令需要输入 PDF 文件。

如果命令不需要,则需要使用--empty选项。 这告诉qpdf不要期望输入文件。 --pages选项允许您选择页面。 如果您只提供 PDF 名称,则使用所有页面。

要合并两个 PDF 文件以形成一个新的 PDF 文件,请使用此命令格式。

 qpdf --empty --pages first.pdf second.pdf --combined.pdf 

合并两个 PDF 文件以创建一个新的 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 combine.pdf 

使用 ls 列出现有的和新的 PDF 文件

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

新的 PDF 文件包含两个原始 PDF 文件的所有页面

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

 qpdf --empty --pages *.pdf -- all.pdf 

在 qpdf 命令行中使用通配符

我们可以通过在要从中提取页面的文件名后面添加页码或范围来使用页面范围。

这将从“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 页

新 PDF 的第 10 页是源文件的第 55 页

我们可以看到第 10 页是源 PDF 的第 55 页。

拆分 PDF 文件

合并 PDF 文件的反面是拆分 PDF 文件。 要将 PDF 拆分为单独的 PDF 文件,每个文件包含一个页面,语法很简单。

我们要拆分的文件是“summary.pdf”,输出文件是“page.pdf”。 这用作基本名称。 每个新文件都有一个添加到基本名称的数字。 --split-pages选项告诉qpdf我们正在执行什么类型的操作。

 qpdf summary.pdf page.pdf --split-pages 

将一个 PDF 文件拆分为多个 PDF 文件,每个文件一页

输出是一系列按顺序编号的 PDF 文件。

 ls 页面*.pdf 

使用 ls 列出编号的 PDF 文件

如果您不想拆分每个页面,请使用页面范围来选择您想要的页面。

如果我们发出下一个命令,我们将拆分一组单页 PDF 文件。 页面范围用于指定我们想要的页面或范围,但每个页面仍然存储在单个 PDF 中。

 qpdf large.pdf section.pdf --pages large.pdf 1-5,11-14,60,70-100 -- --split-pages 

拆分具有页面范围的 PDF

提取的页面具有基于“section.pdf”的名称,并添加了序列号。

 ls 部分*.pdf 

使用 ls 列出编号的 PDF 文件

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

 qpdf --empty --pages large.pdf 8-13 -- Chapter2.pdf 

从 PDF 文件中提取一系列页面并将它们存储在一个新的 PDF 文件中

这将创建一个名为“chapter2.pdf”的单页多页 PDF。

旋转页面

要旋转页面,我们创建一个新的 PDF,它与旋转指定页面的输入 PDF 相同。

我们使用--rotate选项来执行此操作。 +90表示将页面顺时针旋转 90 度。 您可以将页面旋转 90、180 或 270 度。 您还可以使用负数指定逆时针旋转度数,但几乎不需要这样做。 -90 的旋转与 +270 的旋转相同。

用冒号“ : ”与旋转分隔的数字是您要旋转的页面的编号。 这可能是页码和页面范围的列表,但我们只是旋转第一页。 要旋转所有页面,请使用1-z的页面范围。

 qpdf --rotate=+90:1 摘要.pdf 旋转1.pdf 

旋转 PDF 的第一页

第一页已为我们旋转。

第一页顺时针旋转 90 度的 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 时,PDF 查看器会提示我们输入密码。 输入用户密码授权查看器打开文件。

PDF 查看器提示输入密码以打开加密的 PDF 文件

请记住, qpdf不会更改现有的 PDF。 它使用我们要求它进行的更改创建一个新的。 因此,如果您制作加密的 PDF,您仍将拥有原始的未加密版本。 根据您的情况,您可能希望删除原始 PDF 或将其安全地存储起来。

要解密文件,请使用--decrypt选项。 显然,您必须知道所有者密码才能正常工作。 我们需要使用--password选项来识别密码。

 qpdf --decrypt --password=goose.goat.gibbon secret.pdf unlocked.pdf 

从加密的 PDF 创建解密的 PDF

“unlocked.pdf”无需密码即可打开。

qpdf 是一个优秀的工具

我们对qpdf印象深刻。 它为处理 PDF 文件提供了一个灵活且功能丰富的工具集。 它也非常快。

查看他们精心编写的详细文档,看看它还能做多少。