python实现pdf拆分与合并

背景:网上有很多在线可以拆分合并pdf,但是对于一些保密性的文档还是不太好在线去操作,因为会上传到服务器,如果被不法分子获取传播,会很麻烦,基于此考虑开发的本地pdf拆分与合并工具,分享出来。

文档最后获取源码链接;

PDF工具集

一个简单易用的PDF文件处理工具集,包含PDF拆分、合并和压缩功能。

  • **拆分功能**:将PDF文件按单页拆分为多个独立的PDF文件

  • **合并功能**:将多个PDF文件合并为一个PDF文件

  • **压缩功能**:压缩PDF文件大小,支持不同压缩级别

功能特点

拆分功能

  • ✅ 将PDF文件按单页拆分

  • ✅ 自动创建输出目录,避免文件混乱

  • ✅ 支持命令行界面,操作简单

合并功能

  • ✅ 合并多个PDF文件为一个文件

  • ✅ 支持自定义输出文件名

  • ✅ 按顺序合并,保持原始页面顺序

压缩功能

  • ✅ 压缩PDF文件大小

  • ✅ 支持多种压缩级别(低、中、高)

  • ✅ 支持自定义图像分辨率和质量

  • ✅ 显示压缩率和文件大小变化

通用特点

  • ✅ 提供详细的操作反馈

  • ✅ 错误处理完善

  • ✅ 支持文件路径验证

安装步骤

1. 确保已安装Python

请确保您的系统已安装Python 3.6或更高版本。您可以在命令行中运行以下命令检查Python版本:

```bash

python --version

```

2. 安装依赖库

本工具使用以下库来处理PDF文件:

```bash

pip install PyPDF2 pymupdf

```

  • **PyPDF2**:用于PDF拆分和合并功能

  • **PyMuPDF**:用于PDF压缩功能

使用方法

PDF拆分工具使用方法

基本使用

在命令行中运行以下命令来拆分PDF文件:

```bash

python pdf_splitter.py <input_pdf_path>

```

其中 `<input_pdf_path>` 是您要拆分的PDF文件的路径。

示例

拆分当前目录下的 `example.pdf` 文件:

```bash

python pdf_splitter.py example.pdf

```

输出结果

拆分完成后,工具会在当前目录下创建一个新的文件夹,命名为 `原文件名_pages`,例如 `example_pages`。

在这个文件夹中,您将找到拆分后的单页PDF文件,命名格式为:

```

原文件名_page_页码.pdf

```

例如:

```

example_page_1.pdf

example_page_2.pdf

example_page_3.pdf

```

PDF合并工具使用方法

基本使用

在命令行中运行以下命令来合并PDF文件:

```bash

python pdf_merger.py <input_pdf_1> <input_pdf_2> ... <input_pdf_n> [--output OUTPUT]

```

其中:

  • `<input_pdf_1> <input_pdf_2> ... <input_pdf_n>` 是您要合并的PDF文件路径列表

  • `--output OUTPUT` 或 `-o OUTPUT` 是可选参数,用于指定合并后PDF文件的输出路径(默认:merged.pdf)

示例

  1. 合并当前目录下的多个PDF文件:

```bash

python pdf_merger.py file1.pdf file2.pdf file3.pdf

```

  1. 指定合并后的输出文件名:

```bash

python pdf_merger.py file1.pdf file2.pdf -o combined.pdf

```

  1. 使用通配符合并所有PDF文件(按字母顺序):

```bash

python pdf_merger.py *.pdf -o all_merged.pdf

```

注意事项

  1. 请确保您有足够的磁盘空间来存储拆分后的PDF文件。

  2. 对于大文件(超过100MB),拆分过程可能需要一些时间,请耐心等待。

  3. 本工具只支持标准的PDF文件格式。

  4. 如果PDF文件有密码保护,请先解除保护再使用本工具。

常见问题

Q: 为什么拆分后的PDF文件无法打开?

A: 可能是原始PDF文件损坏或格式不标准。请检查原始PDF文件是否可以正常打开。

Q: 为什么工具提示找不到文件?

A: 请检查您提供的文件路径是否正确,包括文件名和扩展名。

Q: 为什么工具提示不是PDF文件?

A: 请确保您的文件扩展名是 `.pdf`,并且确实是PDF格式的文件。

PDF压缩工具使用方法

基本使用

在命令行中运行以下命令来压缩PDF文件:

```bash

python pdf_compressor.py <input_pdf_path> [--output OUTPUT] [--level LEVEL] [--quality QUALITY] [--image-quality IMAGE_QUALITY]

```

其中:

  • `<input_pdf_path>` 是您要压缩的PDF文件路径

  • `--output OUTPUT` 或 `-o OUTPUT`:可选参数,用于指定压缩后PDF文件的输出路径(默认:原文件名_compressed.pdf)

  • `--level LEVEL` 或 `-l LEVEL`:可选参数,压缩级别,可选值为 low、medium、high(默认:medium)

  • `--quality QUALITY`:可选参数,自定义图像分辨率(10-300 DPI)

  • `--image-quality IMAGE_QUALITY`:可选参数,自定义图像质量(0-100%)

示例

  1. 使用默认参数压缩PDF文件:

```bash

python pdf_compressor.py document.pdf

```

  1. 指定输出文件名:

```bash

python pdf_compressor.py document.pdf -o compressed.pdf

```

  1. 使用高压缩级别:

```bash

python pdf_compressor.py document.pdf -l high

```

  1. 自定义图像分辨率和质量:

```bash

python pdf_compressor.py document.pdf --quality 120 --image-quality 80

```

代码结构

```

.

├── pdf_splitter.py # PDF拆分工具

├── pdf_merger.py # PDF合并工具

├── pdf_compressor.py # PDF压缩工具

├── venv/ # Python虚拟环境(可选)

└── README.md # 说明文档

```

许可证

本工具采用MIT许可证,您可以自由使用和修改。

贡献

如果您发现任何问题或有改进建议,欢迎提交Issue或Pull Request。


**使用愉快!** 🎉

git仓库:
https://gitlab.com/muaxi8/pdf-tools.git

相关推荐
杰克崔1 小时前
进程内mmap锁相互干扰问题
linux·运维·服务器·车载系统
拾贰_C1 小时前
[Python | pytorch | torchvision ] models like ResNet... 命名变量说明
开发语言·pytorch·python
清水白石0082 小时前
《Python 装饰器模式与代理模式深度剖析:从语法技巧到架构实战》
python·代理模式·装饰器模式
dagouaofei2 小时前
AI自动生成PPT工具横评,真实使用感受分享
人工智能·python·powerpoint
恒创科技HK2 小时前
2026年香港服务器有哪些区域可选?
运维·服务器
xjxijd2 小时前
工业元宇宙 IDC 支撑:数字孪生算法 + 边缘服务器,生产调度响应速度提 3 倍
运维·服务器·算法
阿华田5122 小时前
如何基于Jupyter内核自研NoteBook
ide·python·jupyter·自研notebook
dblens 数据库管理和开发工具2 小时前
DBLens:让 SQL 查询更智能、更高效的数据库利器
服务器·数据库·sql·数据库连接工具·dblens
W如Q扬2 小时前
python程序使用supervisor启停
python·supervisor