java合并pdf文件最简单的方法(如何在服务器端通过命令操作)(1)

PDF 最初由 Adobe Systems 于 1993 年开发,旨在创建一种可以在不同计算机系统、软件应用程序和设备之间轻松共享和打印的文件格式。当时,文档通常以专有文件格式创建,这些文件格式特定于用于创建它们的软件应用程序,这使得跨不同平台共享和查看文档变得困难。

PDF 被设计为一种通用文件格式,可以保留文档的格式、字体、图像和其他元素,无论用于创建它的软件或用于查看它的设备如何。该格式迅速流行起来并成为在线共享文档的标准,尤其是学术期刊、政府报告和其他专业出版物。

从 Web 服务器提供 PDF 文件非常普遍,甚至有付费的 PDF 服务器软件可用,但价格相当昂贵。在本文中,我将向您展示一种在 Web 服务器上操作、拆分和合并 PDF 文档的免费且简单的方法。

我们将要使用的软件库称为 qpdf[1],这是一个非常强大的 PDF 操作 C 库。它还带有一个命令行二进制工具,您可以很方便的调用该工具。

安装 QPDF

您可以自己下载并编译源代码,或者如果您可以在 Debian/Ubuntu 或 MacOS 上下载软件包。目前没有可靠的 Windows 包,所以你必须手动编译它。

在 Ubuntu 上安装:

apt -y install qpdf

在 MacOS 上安装:

brew install qpdf

如果您没有安装 Homebrew[2],请运行以下命令:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

例子

好的,现在已经安装好了,下面是一些您可能希望使用 QPDF 执行的操作的示例。

假设您有一个包含数百甚至数千页的大型 PDF,并且您希望能够仅向用户提供一页或一系列页面。可执行以下命令:

qpdf --empty --pages input_file.pdf 50,60-69 -- output_file.pdf

或者假设您想将两个 PDF 文件连接(合并)为一个文件:

qpdf --empty --pages input_file1.pdf input_file2.pdf -- output_file.pdf

您甚至可以为多个文件指定页面范围:

qpdf --empty --pages input_file1.pdf 50,60-69 input_file2.pdf 1-10 -- output_file.pdf

很简单吧?假设你有一个受密码保护的文件,你想复制它,解密它,然后将它发送给客户端:

qpdf --passsword=password --decrypt secure.pdf unsecure.pdf

如您所见,QPDF 是一个了不起的工具。您可以用它做更多的事情。这些例子只是触及了表面。 QPDF 不仅非常适合自动操作 PDF 文件,而且您还可以将它安装在您的工作站上以用于日常 PDF 编辑。

更多例子

将特定页面旋转到指定角度(顺时针):

qpdf --rotate=90:2,4,6 --rotate=180:7-8 input.pdf output.pdf

将 PDF 拆分为单独的页面:

qpdf --split-pages=n input.pdf out_%d.pdf

延伸阅读:

  1. 1. QPDF 手册[3]
  2. 2. QPDF文档[4]
引用链接

[1] qpdf: https://qpdf.readthedocs.io/en/stable/overview.html[2] Homebrew: https://brew.sh/[3] QPDF 手册: https://www.mankier.com/1/qpdf[4] QPDF文档: https://qpdf.readthedocs.io/en/stable/

,