13.如何用ChatGPT 拆分、合并PDF
这是零基础玩ChatGPT+Python——办公自动化的第13节:利用ChatGPT生成Python代码,拆分、合并PDF。
教程目的: 初步掌握用ChatGPT批量操作PDF,节省时间
阅读对象: 需要用ChatGPT提高工作效率、摆脱重复无聊工作、无Python基础、或Python入门者。
文章目录
场景:
日常工作中,会遇到一些拆分和合并PDF的场景。
拆分PDF: 发邮件时,如果PDF文件过大,就需要拆分发送;文本编辑时,只需编辑其中的一个PDF,也需要拆分PDF……
合并PDF:公司有多个产品,需要把所有的产品资料合并为一个完整的产品目录;在法律行业,律师可能需要将多个与案件相关的证据文件或文件证明合并为一个文件,以方便法庭审查……
这些常见、简单的PDF功能,某些软件尽然要开会员才能使用。
有了ChatGPT后,再辅以Python进行PDF操作,不仅速度更快,而且还省钱。
一、软件准备
1.1 ChatGPT账号。
如果没有账号,嫌麻烦,可以在银河录像局的“AI百宝箱”里购买: https://nf.video/yinhe/web?sharedId=127297
也可以自己免费注册: http://yesaiwen.com/chatgpt-plus-register-yourself/
1.2 vscode:免费。 参考安装教程: http://yesaiwen.com/how-to-use-chatgpt-coding-python/
二、素材准备
在下面的这个链接里,找到相应的素材地址,下载并解压:
http://yesaiwen.com/chatgpt-python-resources/
练习素材内容:
一个11页的PDF文件(b战2022年第4季度的财报)和源代码:
下载后,解压,获得文件及文件夹的位置。例如:
文件夹位置::C:\Users\seven2024\Desktop\text
三、操作步骤
安装模块
首先需要在vscode里,安装2个模块。 在vscode的终端里,输入这1个命令,后按回车:
pip install pikepdf PyPDF2
3.1.打开ChatGPT,输入提示词(Prompt)
拆分PDF文件提示词:
作为一个Python程序员,我需要把文件夹里的PDF文件,拆分成单页的PDF。要用到pikepdf。 请写出代码。
文件夹位置:C:\Users\seven2024\Desktop\text
合并PDF文件的提示词:
作为一名Python开发者,我希望能够合并一个文件夹中的所有PDF文件到一个PDF中,合并的顺序应当按照文件名中的数字升序排列。
例如,文件名为'b站财报_page_1'的文件应当在 'b站财报_page_11'的文件之前。
文件夹的路径为 'C:\Users\seven2024\Desktop\text'。
特别注意:对于 PyPDF2 版本 3.0.0 及以后的版本,应使用 `PdfMerger` 替代 `PdfFileMerger`。
请提供相应的Python代码来实现这一目标。
这里用的是plus
3.2.复制代码,并粘贴到vscode里
在vscode里,新建一个jupyter文件:
① 复制ChatGPT里给出的代码,粘贴到vscode里
② 点击“运行”
③ 当下面出现绿勾时,说明代码运行成功。
分别粘贴“拆分”代码和“合并“代码
3.3 检查结果
运行“拆分”的代码后,在原文件夹里,会出现一个“output”文件夹,里面有拆分的11个PDF文件。
需要把它复制粘贴到原文件夹里
运行“合并”的代码后,在文件夹的末尾,会出现一个合并后的PDF文件。
四、出现的问题
在折腾PDF拆分和合并的过程中, 遇到了2个问题:
4.1. Python的模块升级了,但是ChatGPT并没有升级
对于 PyPDF2 版本 3.0.0 及以后的版本,应使用 PdfMerger
替代 PdfFileMerger
。
解决方法:把问题再丢给ChatGPT,它会修改代码
2. PDF排序问题:
第一次让ChatGPT生成合并PDF的代码,运行后PDF排序不对。
我的PDF命名规则是:第一个命名,b站财报_page_1,最后一个命名:b站财报_page_11。
但是在计算机中,字符串的比较是基于字符的Unicode值,所以按字典顺序进行排序时,”b站财报_page_11″ 会出现在 “b站财报_page_2” 之前,因为字符串中的 ‘1’ 字符的Unicode值小于 ‘2’。所以造成了排序错乱。
(上面这些解释,是ChatGPT说的,我并不完全理解它的含义。反正能达到目的就成了)
解决方法:把问题再丢给ChatGPT,它会修改代码。
五、小结
ChatGPT无法一次性、完美解决出现的问题。但是可以通过不断反馈问题给它,最终获得自己想要的结果。
“知错就改”,“知错能改”, ChatGPT的这2点特性挺好。
发表评论