pdf merge

news/2024/12/14 14:33:54/

在 Ubuntu 22.04 上,你可以使用以下命令行工具来合并多个 PDF 文件:

pdftk_2">1. pdftk

pdftk 是一个强大的 PDF 工具,支持合并、拆分和其他操作。安装和使用方法如下:

sudo apt install pdftk
pdftk file1.pdf file2.pdf cat output merged.pdf

pdfunite_9">2. pdfunite(推荐)

pdfunite 是一个简单且高效的工具,通常是 poppler-utils 包的一部分。安装和使用方法如下:

sudo apt install poppler-utils
pdfunite file1.pdf file2.pdf file3.pdf merged.pdf

3. ghostscript

Ghostscript 是一个功能强大的工具,也支持 PDF 合并操作。使用方法如下:

sudo apt install ghostscript
gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=merged.pdf file1.pdf file2.pdf file3.pdf

pdf_23">4. qpdf

qpdf 是一个灵活的 PDF 工具,支持加密、解密和合并等功能。合并 PDF 的方法如下:

sudo apt install qpdf
qpdf --empty --pages file1.pdf file2.pdf -- merged.pdf

5. Python 脚本

如果你熟悉 Python,可以使用 PyPDF2pikepdf 库进行合并。示例代码如下:

pip install PyPDF2
python">from PyPDF2 import PdfMergermerger = PdfMerger()
for pdf in ["file1.pdf", "file2.pdf", "file3.pdf"]:merger.append(pdf)
merger.write("merged.pdf")
merger.close()

哪个工具适合你?

  • 如果需要简单易用,pdfunite 是首选。
  • 如果需要更多功能,pdftkghostscript 是更灵活的选择。
  • 如果你需要用脚本实现自动化,Python 是不错的选择。

你可以使用工具来解除PDF的密码保护,从而避免每次都需要输入密码的麻烦。以下是一些常用的方法和工具:


pdf_58">方法 1:使用 qpdf

qpdf 是一个开源的命令行工具,适合处理PDF文件,包括移除密码保护。

步骤:
  1. 安装 qpdf

    • Ubuntu/Debian:
      sudo apt install qpdf
      
    • Mac (Homebrew):
      brew install qpdf
      
    • Windows: 下载 qpdf 并安装。
  2. 使用以下命令移除密码:

    qpdf --password=你的密码 --decrypt 输入文件.pdf 输出文件.pdf
    

    例子:

    qpdf --password=123456 --decrypt protected.pdf unprotected.pdf
    

pdftk_84">方法 2:使用 pdftk

pdftk 也是一个命令行工具,用于处理PDF文件。

步骤:
  1. 安装 pdftk

    • Ubuntu/Debian:
      sudo apt install pdftk
      
    • Mac (Homebrew):
      brew install pdftk-java
      
    • Windows: 下载 pdftk 并安装。
  2. 使用以下命令移除密码:

    pdftk 输入文件.pdf input_pw 你的密码 output 输出文件.pdf
    

    例子:

    pdftk protected.pdf input_pw 123456 output unprotected.pdf
    

方法 3:在线工具(适合非敏感文件)

如果文件不涉及敏感信息,你可以使用一些在线工具来移除密码,例如:

  • Smallpdf
  • iLovePDF
注意事项:
  • 上传前确保文件内容不会泄露。
  • 不建议对包含敏感信息的PDF使用此方法。

方法 4:使用 Adobe Acrobat(付费工具)

Adobe Acrobat 的完整版本支持解密功能。

步骤:
  1. 用密码打开PDF。
  2. 导航到 文件 > 属性 > 安全性
  3. 更改安全性方法为 无安全性
  4. 保存文件。

以上方法可以帮你去掉PDF的密码保护,推荐使用 qpdfpdftk,因为它们是免费的命令行工具且支持自动化操作。


要使用qpdf合并多个PDF文件,你可以使用以下命令:

qpdf --empty --pages *.pdf -- output.pdf

这个命令会将当前目录下的所有PDF文件合并到一个名为output.pdf的文件中。


要合并特定的PDF文件,比如1-6个文件,而不包括7-8,你可以使用qpdf命令行工具,并指定你想要合并的文件。假设你的文件名是file1.pdffile2.pdf,以此类推,你可以使用以下命令:

qpdf --empty --pages file1.pdf file2.pdf file3.pdf file4.pdf file5.pdf file6.pdf -- output.pdf

这个命令会将file1.pdffile6.pdf合并到一个名为output.pdf的文件中,而不会包括file7.pdffile8.pdf

如果文件名的格式不同,确保在命令中使用正确的文件名即可。


  • https://qpdf.readthedocs.io/en/stable/overview.html

  • https://github.com/qpdf/qpdf


http://www.ppmy.cn/news/1555037.html

相关文章

《负载均衡与 Tomcat:实现高可用和高性能的 Web 应用》

一、引言 在现代互联网应用中,高可用性和高性能是至关重要的。随着用户数量的不断增加和业务的不断扩展,单个服务器往往无法满足需求。负载均衡技术应运而生,它可以将请求分发到多个服务器上,从而提高系统的整体性能和可用性。Tom…

ArcGIS MultiPatch数据转换Obj数据

文章目录 ArcGIS MultiPatch数据转换Obj数据1 效果2 技术路线2.1 Multipatch To Collada2.2 Collada To Obj3 代码实现4 附录4.1 环境4.2 一些坑ArcGIS MultiPatch数据转换Obj数据 1 效果 2 技术路线 MultiPatch --MultipatchToCollada–> Collada --Assimp–> Obj 2.…

虚幻引擎内各个组件的关系

1. GameMode: 关系: GameMode 是游戏规则的制定者和管理者,GameState 则是游戏状态的记录者和同步者。GameMode 通常负责创建和初始化 GameState。 交互: GameMode 可以直接访问和修改 GameState 的属性,例如更新游戏分数、切换游戏阶段等。GameState 的变化会通过 GameMode …

51c~Pytorch~合集2

我自己的原文哦~ https://blog.51cto.com/whaosoft/11878447 一、PyTorch与torch-xla的桥接 文章从XLATensor开始的溯源、注册PyTorch库实现、从PyTorch调用到torch_xla三个方面来介绍PyTorch与torch-xla的桥接 XLA (Accelerated Linear Algebra)是一个开源的机器学习编…

使用html 和JavaScript 实现一个点餐系统

1.完整的点餐系统页面 2. 主要功能和改进: 菜单管理: 上架和下架菜品的功能正常工作。新增菜品和修改菜品信息的功能正常工作。 购物车模块: 在总价后面增加了“会员价”一栏,展示每个菜品在会员折扣下的总价。结算时根据是否是会员来计算相应的总金额&…

NDN命名数据网络和域名的区别

NDN(Named Data Networking)网络的概念 NDN是一种新型的网络架构,也被称为命名数据网络。与传统的以IP地址为中心的网络架构不同,NDN是以数据(内容)本身命名为中心的网络架构。在传统网络中,我们通过IP地址来寻找主机设备,然后获取该设备上存储的内容。而在NDN网络中,…

SQL去重查询C++ 中面向对象编程如何实现数据隐藏?C++ 中面向对象编程如何处理异常?Pimpl模式

SQL2 查询多列 select device_id,gender,age,university from user_profile; SQL3 查询结果去重 select distinct university from user_profile; select university from user_profile group by university; C 中面向对象编程如何实现数据隐藏? 使用访问控制修饰…

Electron electron-builder.yml 配置 (自定义包名,用户自定义安装目录...)

electron-builder.yml 配置 # 唯一的应用程序标识符,用于操作系统级别的识别 appId: com.electron.app# 应用程序的名称,显示在用户界面上 productName: 我的应用# 定义构建资源目录,放置图标、证书等资源文件 directories:buildResources: …