如何将多个PDF文件合并/转换为一个大型PDF文件?
我尝试了以下内容,但目标文件的内容不符合预期:
convert file1.pdf file2.pdf merged.pdf
我需要一个非常简单/基本的命令行(CLI)解决方案 . 如果我可以将合并/转换的输出直接输入 pdf2ps
(最初在我之前提出的问题中尝试过:Linux piping ( convert -> pdf2ps -> lp)),那将是最好的 .
如何将多个PDF文件合并/转换为一个大型PDF文件?
我尝试了以下内容,但目标文件的内容不符合预期:
convert file1.pdf file2.pdf merged.pdf
我需要一个非常简单/基本的命令行(CLI)解决方案 . 如果我可以将合并/转换的输出直接输入 pdf2ps
(最初在我之前提出的问题中尝试过:Linux piping ( convert -> pdf2ps -> lp)),那将是最好的 .
16 回答
考虑到
pdfunite
是poppler的一部分,它有更高的安装机会,使用也比pdftk
简单:如果要将所有下载的图像转换为一个pdf,请执行
convert img{0..19}.jpg slides.pdf
另外
pdfjoin a.pdf b.pdf
将创建一个新的b-joined.pdf
,内容为.pdf和b.pdf在搜索了许多可用的pdf库之后,唯一对我有用的是
https://libraries.io/npm/easy-pdf-merge
它需要安装Java 6或更高版本,但工作正常 . Pdftk充满了bug .
Apache PDFBox http://pdfbox.apache.org/
PDFMerger此应用程序将获取pdf文档列表并合并它们,将结果保存在新文档中 .
您可以使用sejda-console,免费和开源 . 解压缩并运行
sejda-console merge -f file1.pdf file2.pdf -o merged.pdf
它保留了书签,链接注释,acroforms等 . 它实际上有很多你可以玩的选项,只需运行
sejda-console merge -h
就可以看到它们 .其他答案都很好,但如果您无法在本地合并PDF,无论您是在共享托管环境中,还是出于其他原因,它们都无法帮助您 .
如果您正在寻找用于远程合并PDF的API,您可以尝试api2pdf,它具有用于将pdfs合并在一起的 endpoints . 文档是here .
我有偏见是PyMuPDF(MuPDF的Python绑定)的开发人员之一 .
你可以轻松地用它做你想做的事情(还有更多) . 骨架代码的工作原理如下:
就是这样 . 有几个选项可用于仅选择页面范围,维护联合目录,反转页面顺序或更改页面旋转等 .
我们在PyPi上 .
我喜欢Chasmo的想法,但我更喜欢使用类似的东西
将多个源文件提供给
convert
会导致将它们合并为一个通用的pdf . 此命令将实际目录中具有.pdf
扩展名的所有文件合并到父目录中的merged.pdf
.这是我使用的一种方法,它易于实现 . 这将需要 fpdf 和 fpdi 库,可在此处下载:
FPDF:http://www.fpdf.org/en/download.php
FPDI:https://www.setasign.com/products/fpdi/downloads
使用python的PDF工具https://pypi.python.org/pypi/pdftools/1.0.6
下载tar.gz文件并解压缩并运行如下命令
您应该在运行上述命令之前安装pyhton3
此工具支持以下内容
添加
插入
删除
旋转
分裂
合并
邮编
您可以在下面的链接中找到更多详细信息,它是开源的
https://github.com/MrLeeh/pdftools
pdfunite
可以合并整个PDF . 例如,如果您需要file1.pdf中的2-7页和file2.pdf中的页1,3,4,则必须使用pdfseparate
将文件拆分为每个页面的单独PDF以提供给pdfunite
.那时你可能想要一个有更多选项的程序 .
qpdf
是我发现用于处理PDF的最佳实用程序 .pdftk
更大更慢,Red Hat / Fedora因为依赖gcj而不打包它 . 其他PDF实用程序具有Mono或Python依赖项 . 我发现qpdf
产生了比使用pdfseparate
和pdfunite
更小的输出文件,将页面组合成30页的输出PDF,970kB和1,6450 kB . 因为它提供了更多选项,qpdf
的命令行并不那么简单;合并file1和file2的原始请求可以执行对不起,我设法用google找到了答案并且有点运气:)
对于有兴趣的人;
我在我们的debian服务器上安装了pdftk(pdf工具包),并使用以下命令实现了所需的输出:
要么
这反过来可以直接传送到pdf2ps .
我推荐了
pdfunite
. 然而,当我试图合并> 2k PDF文件时,我得到了Argument list too long
错误 .为此我转向Python和两个外部包:PyPDF2(处理所有与PDF相关的事情)和natsort(对目录的文件名进行"natural"排序) . 如果这可以帮助某人:
你可以直接使用convert命令,
例如
试试好鬼影:
或者甚至通过这种方式获得低分辨率PDF的改进版本(感谢Adriano指出这一点):
在这两种情况下输出分辨率比使用转换的这种方式更高更好:
通过这种方式,您不需要安装任何其他东西,只需使用您已安装在系统中的内容(至少在我的rhel中都默认使用) .
希望这可以帮助,
UPDATE: 首先感谢您的所有好评!只是一个可能对你们有用的提示,在谷歌搜索之后,我找到了一个缩小PDF大小的绝佳技巧,我将其缩小为一个300 MB的PDF到15 MB的可接受分辨率!所有这些与好鬼,这里是:
干杯!!