前几天有个学生找到我,他需要把100多个PDF课件合并成一个完整的文件。他试过网上那些号称速合并的软件,要么只能合3个,要么让你付费几十块。他一脸无奈地说,老师这钱花得太冤了。
我告诉他,其实用Python可以做到。代码不长,逻辑简单,效果稳得一批。你不需要精通编程,跟着我操作就行。
先安装一个库,叫PyPDF2。打开你的命令行,敲一行代码:pip install PyPDF2。等它跑完,环境就准备好了。
新建一个文件夹,把你要合并的PDF文件都丢进去。记得名字最好按顺序排,比如1.pdf,2.pdf这样。如果不排好,合并完的顺序可能会乱。
打开记事本或者你常用的代码编辑器,复制下面这段代码:
from PyPDF2 import PdfMerger
import os
pdfs = []
for filename in os.listdir('.'):
if filename.endswith('.pdf'):
pdfs.append(filename)
pdfs.sort()
merger = PdfMerger()
for pdf in pdfs:
merger.append(pdf)
merger.write('合并结果.pdf')
merger.close()
print('合并完成!')
把文件保存成.py格式,比如hebing.py。然后双击运行它。你会看到命令行里闪一下,再打开文件夹,多了一个叫“合并结果.pdf”的文件。打开看看,100个PDF已经整整齐齐合在一起了。
这个办法完全免费。你不需要买任何会员,不需要注册账号。代码一次写好后,下次再用直接双击就行。我班里有个孩子,拿它合了200多页的考证资料,省了顿饭钱。
有人担心合出来的文件会不会变差。不会的。PyPDF2直接操作的是PDF本身的结构,不压缩不转码,保持了原有的清晰度。字体,图片,表格都好着。
如果你遇到文件特别大,几百个PDF要合,代码里可以加一行判断,比如合并后超100MB就提醒。不过大部分日常使用,这个量级完全够用。
我还见过有人拿这个去卖钱的。淘宝上那些几十块帮合PDF的,用的就是这种代码。你自己学会了,就能省下这笔钱。
操作步骤很简单:装库,放文件,写代码,双击。没了。不要被那些花里胡哨的付费软件骗了。技术本来就应该为普通人服务。
对了,合并过程中如果遇到带密码的PDF,PyPDF2会报错。遇到这种情况,先找个在线工具把密码去掉,再放到文件夹里继续合。其他时候都比较稳。
试试看吧。合完第一个文件后,你会觉得之前花的钱都是冤枉的。