#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.pdf
和file2.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 ChainPDFChain是一个非常好的解决方案。它的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.pdf
和file2.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
评论
我找到了此链接