Python 合并多个 PDF 文件并建立书签目录

今天在用 WPS 的 PDF 工具合并多个文件的时候,非常不给力,居然卡死了好几次,什么毛病?!

心里想,就这么点儿功能,居然收了我会员费都实现不了?不是吧......

只能自己来了,主要用了 pypdf 库,因为 PyPDF2 版本更新原因,一些类和函数已经过时,截止发文时以下是最新用法(赶紧收藏吧!!)

第一步,安装 pypdf

复制代码
pip install pypdf

第二步,具体实现

python 复制代码
import os
from pypdf import PdfWriter, PdfReader

# 指定路径
target_path = '/Users/jss/Desktop/abc'

# 过滤出以 .pdf 为后缀的文件
pdf_lst = [f for f in os.listdir(target_path) if f.endswith('.pdf')]

# 对文件名进行排序
sorted_files = sorted(pdf_lst)

# 输出排序后的文件名(测试查看是否正确)
# for file in sorted_files:
#     print(file)

# 按具体位置拼接文件名
pdf_lst = [os.path.join(target_path, filename) for filename in sorted_files]

# (测试查看是否正确)
# for file in pdf_lst: 
#     print(file)

# 记录页码
pdf_num = 0

# 获取输出流
file_merger = PdfWriter()

# 循环合并
for pdf in pdf_lst:
    # 提取文件名,用作书签目录
    pdf_title = pdf.split("/")[-1].split('.')[0]
    # 合并pdf文件
    file_merger.append(pdf, pdf_title)
    # 记录页数
    pdf_num += len(PdfReader(pdf).pages)
    
# 指定文件输出合并后文件
file_merger.write("/Users/jss/Desktop/merge.pdf")

# 关闭流
file_merger.close()

效果

相关推荐
幻云20105 小时前
Python深度学习:从筑基到登仙
前端·javascript·vue.js·人工智能·python
仰望星空@脚踏实地5 小时前
本地Python脚本是否存在命令注入风险
python·datakit·命令注入
LOnghas12116 小时前
果园环境中道路与树木结构检测的YOLO11-Faster语义分割方法
python
一条咸鱼_SaltyFish7 小时前
远程鉴权中心设计:HTTP 与 gRPC 的技术决策与实践
开发语言·网络·网络协议·程序人生·http·开源软件·个人开发
2501_944526428 小时前
Flutter for OpenHarmony 万能游戏库App实战 - 蜘蛛纸牌游戏实现
android·java·python·flutter·游戏
飞Link8 小时前
【Django】Django的静态文件相关配置与操作
后端·python·django
Ulyanov9 小时前
从桌面到云端:构建Web三维战场指挥系统
开发语言·前端·python·tkinter·pyvista·gui开发
CCPC不拿奖不改名10 小时前
两种完整的 Git 分支协作流程
大数据·人工智能·git·python·elasticsearch·搜索引擎·自然语言处理
上海云盾安全满满10 小时前
选择高防IP时需要重点关注哪些因素
网络·网络协议·tcp/ip
a努力。10 小时前
字节Java面试被问:TCP的BBR拥塞控制算法原理
java·开发语言·python·tcp/ip·elasticsearch·面试·职场和发展