Windows中有很多软件可以合并PDF文件,但是如何在Ubuntu中做同样的事情?

评论

我找到了此链接

#1 楼

PDF-Shuffler(安装)

如果您想要带有简单GUI的工具,请尝试pdfshuffler。它允许合并PDF以及重新排列和删除页面。对于批处理和/或更复杂的任务,pdftk当然更强大。



评论


在14.04上安装并像魅力一样工作。谢谢一大堆!

– Zlatty
2014年2月12日在20:26

我还可以确认pdfshuffler在14.04 amd64上可以正常工作。

–conualfy
2014年12月28日在21:35

也适用于16.04.1

– Sanjay Manohar
16年11月7日在12:36

在Ubuntu 14.0 64-bit上尝试了PdfShuffler 0.6.0(apt-get install pdfshuffler),它可以解决一个问题-处理文件名中的某些特殊字符有问题(在我的情况下pdfshuffler无法使用#加载文件名)

– Tzunghsing David Wong
19年1月24日在22:28

自Ubuntu 20.04起,该工具已重命名为pdfarranger。您仍然可以通过apt安装pdfshuffler,但这只是指向pdfarranger的空指针,也是安装后所需的命令。

–卡尔·祖拉夫(Carl Zulauf)
8月3日21:29

#2 楼

pdftk

要合并两个pdf文件,file1.pdffile2.pdf

pdftk file1.pdf file2.pdf cat output mergedfile.pdf


此处有更多信息。

要安装,请运行:

sudo snap install pdftk


评论


pdftk有问题-bugs.launchpad.net/ubuntu/+source/pdftk/+bug/779908。 gs可能速度较慢,但​​工作效果很好[IgnitE的答案]

–普什达加德(Pushpak Dagade)
13年4月3日在11:05

pdftk具有不寻常的用法,其中命令cat和output跟随可变参数输入参数,并再次跟随输出参数。

– Jeff Puckett
17年7月7日,下午3:47

该软件包似乎已在2018.04中删除。

–尼古拉斯·拉乌尔(Nicolas Raoul)
18年5月9日在9:07

@NicolasRaoul我刚刚将其下载为快速安装。

–最大
18年8月31日在14:55

仅供参考:sudo snap install pdftk-aptitude应用程序不再有候选发布版本,创建快照包的作者已弃用该版本。

– GreyedFox
18-10-19在14:30

#3 楼

Ghostscript是一个软件包(默认情况下在Ubuntu中可用),使您可以查看或打印PostScript和PDF文件为其他格式,或将这些文件转换为其他格式。
要使用Ghostscript组合PDF文件,请键入以下内容以下内容:

gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -dAutoRotatePages=/None -sOutputFile=finished.pdf  file1.pdf file2.pdf


以下是命令的简要说明:甚至不需要是PDF文件。您也可以使用PostScript或EPS文件,或这三种文件的任意组合。

使用Ghostscript可以做很多事情。您可以阅读其文档以获取更多详细信息。

来源

评论


没错,但是速度非常慢。我只是尝试串联45 x 400K单页PDF。 pdftk用了0m0.484s,gs用了1m32.898s(慢了近200倍),但是gs的文件小了约21%。

–aidan
13年3月22日在6:47

如果将通配符用于要合并的文件列表,则此命令也可以使用。例如,将file1.pdf file2.pdf替换为file * .pdf

– Antonios Hadjigeorgalis
2014年5月29日13:58

对我来说,gs处理了一些“不一致”的PDF,而pdftk会永远运行。

–ntc2
2014年12月9日下午4:37

使用-dPDFSETTINGS = / prepress选项来改善质量。非常感谢原始贡献者

– Mohnish
16年4月20日在11:58

@AntoniosHadjigeorgalis仅供参考和良好的理解:这不是支持通配符的命令,实际上是在将参数传递给命令之前,shell用file1.pdf file2.pdf替换file * .pdf。

– Midgard
16年6月15日在10:15

#4 楼

您还可以使用pdfunite合并pdf文档:

pdfunite in-1.pdf in-2.pdf in-n.pdf out.pdf
要安装pdfunite(如果尚未安装),请运行:

sudo apt-get install poppler-utils


评论


警告:现有文件out.pdf将被覆盖而不会发出警告,因此pdfunite * .pdf将无法按预期工作。

– krlmlr
2014年12月4日15:02

@krlmlr您始终可以将输出放入另一个目录。

–BЈовић
2014年12月4日15:05

公平地说,cp也会在没有警告的情况下覆盖最后一个参数。这只是为了赶紧用户(像我自己一样)-我很幸运,我已经备份了有问题的文件...

– krlmlr
2014年12月4日15:08

Upvote:这是一个简单的命令行工具,没有像其他许多答案一样的单击并拖动GUI。它很好地封装了(基本等效)的GhostScript解决方案的复杂性。

–tripleee
15年4月13日在14:28

这也非常快。做得好。在非常慢的服务器(aws t1.micro)上,gs花费9秒,pdftk花费4秒,而pdfunite花费0.9秒来合并两个文件!

–rsmoorthy
15年7月15日在19:49

#5 楼

PDF Chain

PDFChain是一个非常好的解决方案。它的GUI是PDFTK的前端,您可以在其中合并,拆分甚至为PDF文件添加一些背景。

评论


这是最好的答案。无论Ubuntu版本如何,它都能完美运行。

– Paulo Coghi
17年2月1日在17:33



轻松地在Ubuntu 14.04上工作!

–我的account_ram
17年4月25日在15:07

在Ubuntu 18.04上效果很好!

–orschiro
17年11月17日在16:15

太好了,它已在18.04(!?)中从ubuntu软件中删除。

–user2413
18年8月6日在6:42

如何在较新的Ubuntu版本中安装它?

– Flimm
1月10日8:49

#6 楼

另一种方法是按照本文中的说明使用Latex(假设您已安装pdflatex,则无需root访问权限):
https://tex.stackexchange.com/questions/8662/merge-two-pdf-files- output-by-latex

如果您没有提到的工具或root特权,但您具有pdflatex,这将很有用。合并file1.pdffile2.pdf。创建一个名为output.tex的文件并放入:

\documentclass{article}
\usepackage{pdfpages}
\begin{document}
\includepdf[pages=-]{file1}
\includepdf[pages=-]{file2}
\end{document}


要编译,只需使用:pdflatex output.tex

合并的文件将被命名为output.pdf

评论


这是最好的方法,因为结果将始终存在,没有错误

– Billal Begueradj
9月14日9:04

#7 楼

试试GNOME项目中的PDFMod:

https://wiki.gnome.org/Apps/PdfMod

sudo apt install pdfmod


评论


不合并。

–user2413
18年8月6日在6:44

它过去确实合并过,现在只是崩溃了,我改用了pdfshuffler,效果很好

–耶拿
18/12/11在21:41

#8 楼

使用pdfsam http://www.pdfsam.org/对拆分和合并pdfs非常有用。

sudo apt install pdfsam


评论


在19.10下使用它来合并文件:简单的界面,一些选项,效果很好。但是其他功能(例如作物)是高级选项。 sudo apt-get install pdfshuffler达到了目的:-)

– Will59
3月9日10:35

#9 楼

我使用pdfseparate从大型pdf文件中提取特定页面:

pdfseparate -f  156 -l 157 input.pdf  output_%d.pdf 
pdfseparate -f  1   -l 2   input.pdf  output_%d.pdf 


,然后我通过命令将它们全部加入:

pdfunite $(ls -v output_*.pdf | tr '\n' ' ') out$(date  +%Y-%m-%d_%H_%M_%S ).pdf


此连接:

output_1.pdf output_2.pdf output_156.pdf output_157.pdf  


进入:

out2014-12-14_23_25_36.pdf


可能更简单如何处理... :-)

安装说明:

sudo apt install poppler-utils


评论


流程替代是多余的,甚至可能有害。正确,简单得多的命令行是pdfunite output _ *。pdf out $(date +%Y-%m-%d-%H_%M_%S).pdf,但缺少ls -v的顺序。一个显而易见的琐碎解决方法是为文件命名,以便它们自然按照您希望包含它们的顺序排序。如果您绝对需要ls -v,则至少可以将管道丢失给tr,这在这里什么也没做。

–tripleee
2015年4月13日14:24



#10 楼

通常,您可以使用pdftk合并和修改PDF文档。另外,也可以通过在线服务来做到这一点:http://www.pdfmerge.com/

评论


pdftk在此答案中被提及:askubuntu.com/a/2802/2355

– Flimm
1月10日8:53

#11 楼

您也可以使用jPDFTweak,pdfsam或pdfjam。

(也就是说,我使用pdftk。)

评论


如果这些是单独的答案,那会更好,这样可以分别进行投票和单独编辑。

– Flimm
1月10日8:51

#12 楼

这是我的方法:


我希望它易于访问,因此我在Nautilus中创建了一个右键单击快捷方式(请参阅https://help.ubuntu.com/community/NautilusScriptsHowto)
我希望它很快,所以我使用pdfunite
pdfunite仅在命令中间接受文件路径,因此我不得不抓紧头来管理文件路径中的空间。因此,我假设所有文件路径都将以“ / home /”开头并以“ .pdf”结尾。结果是:

#!/bin/sh
CLEANED_FILE_PATHS=$(echo $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS | sed 's,.pdf /home/,.pdf\n/home/,g')
echo $CLEANED_FILE_PATHS | bash -c 'IFS=$'"'"'\n'"'"' read -d "" -ra x;pdfunite "${x[@]}" merged.pdf'


Juste将此脚本粘贴到


/ home /您的用户名/.local/share/nautilus/scripts


,并将其命名为“ merge_pdfs .sh”(例如)。然后使其可执行(右键单击merge_pdfs.sh->“权限”选项卡->选中“允许将文件作为程序执行”

因此现在要合并pdf文件,只需选择它们->右键单击->脚本-> merge_pdfs.sh,它将在同一目录中创建一个“ merged.pdf”文件。

希望有帮助!

#13 楼

您可以看到使用了免费和开源的pdftools(免责声明:我是它的作者)。

它基本上是Latex pdfpages软件包的Python接口。

要可以一个一个地合并pdf文件,可以运行:

pdftools --input-file file1.pdf --input-file file2.pdf --output output.pdf


要合并目录中的所有pdf文件,可以运行:

pdftools --input-dir ./dir_with_pdfs --output output.pdf