如何将多个PDF文件合并/转换为一个大型PDF文件?

我尝试了以下操作,但目标文件的内容与预期不符:

convert file1.pdf file2.pdf merged.pdf

我需要一个非常简单/基本的命令行(CLI)解决方案。最好是我可以将合并/转换的输出直接管道化为pdf2ps(正如我之前在这里提出的问题:Linux管道化(convert->pdf2ps->lp)中所尝试的那样)。


当前回答

Apache PDFBoxhttp://pdfbox.apache.org/

PDF发电机此应用程序将获取pdf文档列表并将其合并,将结果保存到新文档中。

用法:java-jar pdfbox-app-x.y.z.jar PDFMerger“源PDF文件(2..n)”“目标PDF文件”

其他回答

尝试好的重影脚本:

gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=merged.pdf mine1.pdf mine2.pdf

或者甚至是低分辨率PDF的改进版本(感谢Adriano指出这一点):

gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -dPDFSETTINGS=/prepress -sOutputFile=merged.pdf mine1.pdf mine2.pdf

在这两种情况下,输出分辨率都比使用convert的方式高得多:

convert -density 300x300 -quality 100 mine1.pdf mine2.pdf merged.pdf

这样,您就不需要安装任何其他东西,只需使用系统中已安装的东西即可(至少默认情况下,这两个都在我的框中)。

更新:首先感谢您的所有评论!!只是一个可能对你们有用的提示,在谷歌搜索后,我发现了一个缩小PDF大小的妙招,我用它将一个300 MB的PDF缩小到了15 MB,分辨率可以接受!所有这一切都有一个很好的脚本,这里是:

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/default -dNOPAUSE -dQUIET -dBATCH -dDetectDuplicateImages -dCompressFonts=true -r150 -sOutputFile=output.pdf input.pdf

我从终端使用了qpdf,在Windows(Moaxterm)和Linux上为我工作,例如,在新文件C.pdf中加入A.pdf和B.pdf的命令是:

qpdf--空--oficios/A.pdfinformes/B.pdf--salida/C.pdf页面

如果需要更多文档[https://net2.com/how-to-merge-or-split-pdf-files-on-linux/][1]

此外,pdfjoin a.pdf.pdf将创建一个新的b-joined.pdf,其中包含a.pdf和b.pdf的内容

如果您想使用Ghostscript将所有PDF文件连接到一个目录中,可以使用find来实现这一点。这里有一个例子

find . -name '*.pdf' -exec gs -o -sDEVICE=pdfwrite -dPDFSETTINGS=/prepress -sOutputFile=../out.pdf {} +

将在当前目录中找到所有pdf,并在父目录中创建out.pdf。如果他们正在寻找一种快速的方法来使用ghostscript创建整个目录,可能会很有用。

虽然它不是命令行解决方案,但它可能会帮助macos用户:

选择您的PDF文件右键单击突出显示的文件选择快速操作>创建PDF