
或者你可能需要上传由不同文件组成的单个文件?许多政府和学术门户网站都要求这样做。
作为 Linux 用户,如果你遇到需要合并 PDF 的情况,本教程将帮助你。
在本教程中,我将分享三种合并多个 PDF 文件的方法:
你可以全部了解一下并选择最适合你的。
在试用了多种 GUI 工具后,我发现 PDF Tricks 使用简单且易于导航。
此外,除了合并 PDF 文件之外,它还包括其他功能,包括:
它以 Flatpak 的形式提供。请 确保你的 Linux 系统启用了 Flatpak 支持。
我分享的是在 Ubuntu 上启用 Flatpak 的步骤:
sudo apt install flatpak
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo现在,使用以下命令在你的系统中安装 PDF Tricks:
flatpak install flathub com.github.muriloventuroso.pdftricks完成安装后,从系统菜单中打开 PDF Tricks 应用。
第一次运行时,你会得到一个可以使用此工具执行的操作列表。显然,要合并 PDF 文件,请使用第三个选项。

merge pdf files using in ubuntu
在下一步中,单击 “添加文件Add file” 并选择要合并的文件:

choose files to merge
选择文件后,单击 “合并Merge” 按钮:

click on merge button
它将打开系统的默认文件管理器。你可以在此处选择要保存合并文件的位置以及应命名的文件:

locate and name the merged pdf file
就是这样。合并后的 PDF 已保存。
如果你正在寻找,我们提供了一份 可用于阅读和编辑 PDF 文件的最佳 PDF 阅读器 列表。
很棒的 LibreOffice 能够处理许多与 PDF 相关的任务。你甚至可以 使用 LibreOffice Draw 工具编辑 PDF 文件 来添加数字签名、添加文本等。
好处是你不需要安装其他应用。LibreOffice 已经安装在大多数发行版上,如果不是全部的话。
打开文件管理器并选择要合并的 PDF 文件。
右键单击选定的文件 > 使用其他应用打开Open With Other Application
它将在单独的 LibreOffice Draw 实例中打开你选择的每个 PDF 文件:

open pdf file in libreoffice
现在,你必须从左侧预览栏选择单个页面或整个 PDF 文件(使用 Ctrl + A)并将其拖放到要合并的文件的预览栏:
拖放后,单击左上角的第 5 个选项,提示是 直接导出为 PDFExport Directly as PDF:

export directly as pdf in libreoffice
将打开一个文件管理器,你可以从中定位并命名文件:

save merged file from libreoffice
这就完成了!
如果我不包括命令行方法,那算什么 Linux 教程?要在命令行中合并 PDF 文件,你可以使用 ImageMagick。
ImageMagick 其实是一个图像相关的工具。PDF 文件本质上是图像,这就是 ImageMagick 可以处理它们的原因。
你可能甚至不需要单独 安装 ImageMagick,因为它已经默认安装在大多数发行版中。
例如,我将添加 3 个名为 pdf-1.pdf、pdf-2.pdf 和 pdf-3.pdf 的 PDF 文件,并将最终合并的 PDF 文件输出命名为 MergedFile.pdf(多么聪明):
convert pdf-1.pdf pdf-2.pdf pdf-3.pdf MergedFile.pdf如果你看到这样的策略错误:

这个问题很容易解决。你只需在 ImageMagick 策略文件中进行少量更改。
打开策略文件进行编辑:
sudo nano /etc/ImageMagick-6/policy.xml并查找以下行:
<policy domain="coder" rights="none" pattern="PDF" />现在,你需要将 rights="none" 更改为 rights=read|write:
<policy domain="coder" rights="read|write" pattern="PDF" />
change policy in imagemagick to merge pdf files
保存更改,现在你可以使用 ImageMagick 轻松合并文件:

merge pdf files using imagemagick in linux terminal
现在你知道了在 Linux 中合并 PDF 文件的几种方法。合并后的 PDF 文件可能很大。如果你需要在有大小限制的门户上传合并的 PDF 文件,你可以 压缩 PDF 文件。
如果你在使用上述方法时遇到任何问题,请告诉我。
(题图:MJ:process docs illustrations in high resolution)
我有一个Ruby程序,它使用rubyzip压缩XML文件的目录树。gem。我的问题是文件开始变得很重,我想提高压缩级别,因为压缩时间不是问题。我在rubyzipdocumentation中找不到一种为创建的ZIP文件指定压缩级别的方法。有人知道如何更改此设置吗?是否有另一个允许指定压缩级别的Ruby库? 最佳答案 这是我通过查看rubyzip内部创建的代码。level=Zlib::BEST_COMPRESSIONZip::ZipOutputStream.open(zip_file)do|zip|Dir.glob("**/*")d
我试图在一个项目中使用rake,如果我把所有东西都放到Rakefile中,它会很大并且很难读取/找到东西,所以我试着将每个命名空间放在lib/rake中它自己的文件中,我添加了这个到我的rake文件的顶部:Dir['#{File.dirname(__FILE__)}/lib/rake/*.rake'].map{|f|requiref}它加载文件没问题,但没有任务。我现在只有一个.rake文件作为测试,名为“servers.rake”,它看起来像这样:namespace:serverdotask:testdoputs"test"endend所以当我运行rakeserver:testid时
出于纯粹的兴趣,我很好奇如何按顺序创建PI,而不是在过程结果之后生成数字,而是让数字在过程本身生成时显示。如果是这种情况,那么数字可以自行产生,我可以对以前看到的数字实现垃圾收集,从而创建一个无限系列。结果只是在Pi系列之后每秒生成一个数字。这是我通过互联网筛选的结果:这是流行的计算机友好算法,类机器算法:defarccot(x,unity)xpow=unity/xn=1sign=1sum=0loopdoterm=xpow/nbreakifterm==0sum+=sign*(xpow/n)xpow/=x*xn+=2sign=-signendsumenddefcalc_pi(digits
我的目标是转换表单输入,例如“100兆字节”或“1GB”,并将其转换为我可以存储在数据库中的文件大小(以千字节为单位)。目前,我有这个:defquota_convert@regex=/([0-9]+)(.*)s/@sizes=%w{kilobytemegabytegigabyte}m=self.quota.match(@regex)if@sizes.include?m[2]eval("self.quota=#{m[1]}.#{m[2]}")endend这有效,但前提是输入是倍数(“gigabytes”,而不是“gigabyte”)并且由于使用了eval看起来疯狂不安全。所以,功能正常,
Rails2.3可以选择随时使用RouteSet#add_configuration_file添加更多路由。是否可以在Rails3项目中做同样的事情? 最佳答案 在config/application.rb中:config.paths.config.routes在Rails3.2(也可能是Rails3.1)中,使用:config.paths["config/routes"] 关于ruby-on-rails-Rails3中的多个路由文件,我们在StackOverflow上找到一个类似的问题
对于具有离线功能的智能手机应用程序,我正在为Xml文件创建单向文本同步。我希望我的服务器将增量/差异(例如GNU差异补丁)发送到目标设备。这是计划:Time=0Server:hasversion_1ofXmlfile(~800kiB)Client:hasversion_1ofXmlfile(~800kiB)Time=1Server:hasversion_1andversion_2ofXmlfile(each~800kiB)computesdeltaoftheseversions(=patch)(~10kiB)sendspatchtoClient(~10kiBtransferred)Cl
我正在寻找执行以下操作的正确语法(在Perl、Shell或Ruby中):#variabletoaccessthedatalinesappendedasafileEND_OF_SCRIPT_MARKERrawdatastartshereanditcontinues. 最佳答案 Perl用__DATA__做这个:#!/usr/bin/perlusestrict;usewarnings;while(){print;}__DATA__Texttoprintgoeshere 关于ruby-如何将脚
如何在buildr项目中使用Ruby?我在很多不同的项目中使用过Ruby、JRuby、Java和Clojure。我目前正在使用我的标准Ruby开发一个模拟应用程序,我想尝试使用Clojure后端(我确实喜欢功能代码)以及JRubygui和测试套件。我还可以看到在未来的不同项目中使用Scala作为后端。我想我要为我的项目尝试一下buildr(http://buildr.apache.org/),但我注意到buildr似乎没有设置为在项目中使用JRuby代码本身!这看起来有点傻,因为该工具旨在统一通用的JVM语言并且是在ruby中构建的。除了将输出的jar包含在一个独特的、仅限ruby
我正在使用的第三方API的文档状态:"[O]urAPIonlyacceptspaddedBase64encodedstrings."什么是“填充的Base64编码字符串”以及如何在Ruby中生成它们。下面的代码是我第一次尝试创建转换为Base64的JSON格式数据。xa=Base64.encode64(a.to_json) 最佳答案 他们说的padding其实就是Base64本身的一部分。它是末尾的“=”和“==”。Base64将3个字节的数据包编码为4个编码字符。所以如果你的输入数据有长度n和n%3=1=>"=="末尾用于填充n%
使用带有Rails插件的vim,您可以创建一个迁移文件,然后一次性打开该文件吗?textmate也可以这样吗? 最佳答案 你可以使用rails.vim然后做类似的事情::Rgeneratemigratonadd_foo_to_bar插件将打开迁移生成的文件,这正是您想要的。我不能代表textmate。 关于ruby-使用VimRails,您可以创建一个新的迁移文件并一次性打开它吗?,我们在StackOverflow上找到一个类似的问题: https://sta