Python3,5行代码,Chatxxx能对PDF文件进行旋转、提取、合并等一系列操作,看了这篇,80岁老奶奶走路都不扶墙了。

简介: Python3,5行代码,Chatxxx能对PDF文件进行旋转、提取、合并等一系列操作,看了这篇,80岁老奶奶走路都不扶墙了。

1、引言

小屌丝:鱼哥,最近干啥了?

小鱼:最近? 你指的多近?

小屌丝:就是 这几天?

小鱼:这几天 我在搬砖啊。

小屌丝:那前几天呢?

小鱼:前几天,我五一假期,我也在搬砖。

小屌丝:鱼哥,你…。

小鱼:我确实这样啊。

小屌丝:那换一个话题,ChatGPT搞得怎么样?

小鱼:ChatGPT各个大厂不都在搞,你想了解的,ChatGPT都能回答。

小屌丝:鱼哥,你…!

小鱼:这就是ChatGPT的强大之处啊,事实也是如此呢。

小屌丝:好吧, 那我想提取PDF文档的内容。

小鱼:这篇:《Python3,9行批量提取PDF文件的指定内容,这种操作,保证人见人爱….》

小屌丝:我是人民币玩家, 我要更高级的。

小鱼:这… 容我看一下

小屌丝:看啥?

小鱼:看你账户余额还剩多少,是不是该充值了。

小屌丝:鱼哥,你…!

小鱼:充满,给你想要的高级感…

小屌丝:嘿嘿 … 充满…

2、代码实战

2.1 原理

说到 ChatPDF,大部分同学的第一反应就是, 不好意思,我不知道。

但是,说到ChatGPT,那你可能说,这我必须知道啊, OPenAI公司的产品,并且现在这么爆火,我还能不知道呢。

既然知道ChatGPT,那ChatPDF就不难理解了。

其实,ChatPDF就是ChatGPT的一个衍生产品。

小屌丝:既然是ChatGPT的衍生产品,那,工作原理是啥样的呢?

小鱼:工作原理不难,也就2套把大象放冰箱的步骤吧。

  • 1、ChatPDF读取PDF文件内容,并将其转换成文本(可以是.txt)格式;
  • 2、ChatPDF对提取的文本内容进行清理和标准化,如:分段、分句等;
  • 3、使用OpenAI的Embeddings API将每个分段转换为向量,这个向量将对文本中的语义进行编码,以便于与问题的向量进行比较;
  • 4、使用OpenAI的Embeddings API将问题转换为一个向量,并与每个分段的向量进行比较,以找到最相似的分段。这个相似度计算可以使用余弦相似度等常见的方法进行;
  • 5、将找到的最相似的分段与问题作为prompt,调用OpenAI的Completion API,让ChatGPT学习分段内容后,再回答对应的问题;
  • 6、会将ChatGPT生成的答案返回给用户,完成一次查询。

小屌丝:没想到,实现流程确实挺easy的。

小鱼:大河弯弯向东流,牛牛向前冲 ~ ~

2.2 安装

上一章节我们知道了什么是ChatPDF,以及运行流程,

接下来,就得实际操作操作了 。

当然,涉及到第三方库, 老规矩,安装走起。

pip install chatpdf

然后就是等待着安装。

其它安装方式,直接看这两篇:

2.2 示例

安装完成,我们就看看chatPDF的能耐。

2.2.1 创建PDF文件

代码示例

# -*- coding:utf-8 -*-
# @Time   : 2023-05-06
# @Author : Carl_DJ
'''
实现功能:
    使用chatPDF的基本方法,创建PDF文件
'''
'--------->创建PDF文件<---------'
from chatpdf import ChatPDF
#文件名字
file_name = './data/TestDemo.pdf'
pdf = ChatPDF()
#添加页数
pdf.add_page()
#设置字体
pdf.set_font("Arial", size=12)
#设置内容
pdf.cell(200,10,txt='Hello, Python')
#输出内容
pdf.output(file_name)

2.2.2 旋转PDF文件

代码示例

# -*- coding:utf-8 -*-
# @Time   : 2023-05-06
# @Author : Carl_DJ
'''
实现功能:
    使用chatPDF的基本方法,实现旋转PDF文件内容
'''
'--------->旋转PDF文件内容<---------'
from chatpdf import rotate_pages
#pdf源文件
pdf_file = './data/input.pdf'
#输出的文件
output_file = './data/output.pdf'
#旋转的页码
pages = [1, 3]
#旋转角度设置
rotation_angle = 270
rotate_pages(pdf_file, output_file, pages, rotation_angle)

2.2.3 拆分PDF文件

代码示例

# -*- coding:utf-8 -*-
# @Time   : 2023-05-06
# @Author : Carl_DJ
'''
实现功能:
    使用chatPDF的基本方法,实现拆分PDF文件内容
'''
'--------->拆分PDF文件<---------'
from chatpdf import split
#需要拆分的pdf源文件
pdf_file = 'input_demo.pdf'
#拆分后的pdf保存的文件夹
output_folder = './data/output'
split(pdf_file,output_folder)

2.2.4 合并PDF文件

代码示例

# -*- coding:utf-8 -*-
# @Time   : 2023-05-06
# @Author : Carl_DJ
'''
实现功能:
    使用chatPDF的基本方法,实现合并PDF文件内容
'''
'--------->合并PDF文件<---------'
#获取所有文件
file1 = './data/demo1.pdf'
file2 = './data/demo2.pdf'
file3 = './data/demo3.pdf'
#列表展示所有需要合并的pdf文件
pdf_file_list = [file1,file2,file3]
#合并后输出文件名称
output_file = 'output_demo.pdf'
merge(pdf_file_list,output_file)

2.2.5 提取PDF文件内容

代码示例

# -*- coding:utf-8 -*-
# @Time   : 2023-05-06
# @Author : Carl_DJ
'''
实现功能:
    使用chatPDF的基本方法,实现提取PDF文件内容
'''
'--------->提取PDF文件<---------'
from chatpdf import extract_pages
#待提取的pdf源文件
pdf_file = 'input.pdf'
#输出提取的pdf文件内容
output_file = './data/output.pdf'
#提取的源文件的页码
pages = [1,3,5,7,10]
extract_pages(pdf_file, output_file, pages)

小屌丝:鱼哥,我记得你还写过一篇,专门提取PDF文档内容的博文。

小鱼:嗯,你的记性还挺好,确实写过,就是下面这篇。

当然,关于对PDF文档的操作,也可以看小鱼的其他博文:

3、总结

看到这里, ChatPDF库的介绍就完成了。

其实ChatPDF库的功能,不止我说的这几个功能哦,还有:

  • PDF文件加密;
  • PDF文件解密;

在当前ChatGPT爆火的当下,作为技术er,我们多多少少都需要了解一些AI的知识。

即使白~ 嫖~ ChatGPT的使用次数, 也是可以的。

当然, 作为小鱼,肯定不会做(bai piao )的事情,但是,学习的脚步,却从未停止。

我是小鱼

  • 家;
  • 阿里云 专家博主;
  • 51CTO 博客专家;
  • 51认证讲师;
  • 认证金牌面试官;
  • 职场培训规划师;

关注我,带你学习更多更有趣的Python知识。

  • CSDN 博客专
目录
相关文章
|
9月前
|
数据可视化 Linux iOS开发
Python脚本转EXE文件实战指南:从原理到操作全解析
本教程详解如何将Python脚本打包为EXE文件,涵盖PyInstaller、auto-py-to-exe和cx_Freeze三种工具,包含实战案例与常见问题解决方案,助你轻松发布独立运行的Python程序。
2119 2
|
10月前
|
安全 JavaScript 开发者
Python 自动化办公神器|一键转换所有文档为 PDF
本文介绍一个自动化批量将 Word、Excel、PPT、TXT、HTML 及图片转换为 PDF 的 Python 脚本。支持多格式识别、错误处理与日志记录,适用于文档归档、报告整理等场景,大幅提升办公效率。仅限 Windows 平台,需安装 Office 及相关依赖。
545 0
|
8月前
|
监控 机器人 编译器
如何将python代码打包成exe文件---PyInstaller打包之神
PyInstaller可将Python程序打包为独立可执行文件,无需用户安装Python环境。它自动分析代码依赖,整合解释器、库及资源,支持一键生成exe,方便分发。使用pip安装后,通过简单命令即可完成打包,适合各类项目部署。
1461 68
|
10月前
|
程序员 数据安全/隐私保护 Python
1行Python代码,实现PDF的加密、解密
程序员晚枫分享使用python-office库实现PDF批量加密与解密的新方法。只需一行代码,即可完成单个或多个PDF文件的加密、解密操作,支持文件路径与正则筛选,适合自动化办公需求。更新至最新版,适配性更佳,操作更简单。
382 8
1行Python代码,实现PDF的加密、解密
|
9月前
|
机器学习/深度学习 文字识别 Java
Python实现PDF图片OCR识别:从原理到实战的全流程解析
本文详解2025年Python实现扫描PDF文本提取的四大OCR方案(Tesseract、EasyOCR、PaddleOCR、OCRmyPDF),涵盖环境配置、图像预处理、核心识别与性能优化,结合财务票据、古籍数字化等实战场景,助力高效构建自动化文档处理系统。
2498 0
|
11月前
|
C#
【PDF提取内容改名】批量提取PDF指定区域内容重命名PDF文件,PDF自动提取内容命名的方案和详细步骤
本工具可批量提取PDF中的合同编号、日期、发票号等关键信息,支持PDF自定义区域提取并自动重命名文件,适用于合同管理、发票处理、文档归档和数据录入场景。基于iTextSharp库实现,提供完整代码示例与百度、腾讯网盘下载链接,助力高效处理PDF文档。
1462 40
|
11月前
|
编译器 Python
如何利用Python批量重命名PDF文件
本文介绍了如何使用Python提取PDF内容并用于文件重命名。通过安装Python环境、PyCharm编译器及Jupyter Notebook,结合tabula库实现PDF数据读取与处理,并提供代码示例与参考文献。
|
11月前
|
编译器 Python
如何利用Python批量重命名文件
本文介绍了如何使用Python和PyCharm对文件进行批量重命名,包括文件名前后互换、按特定字符调整顺序等实用技巧,并提供了完整代码示例。同时推荐了第三方工具Bulk Rename Utility,便于无需编程实现高效重命名。适用于需要处理大量文件命名的场景,提升工作效率。
|
10月前
|
缓存 数据可视化 Linux
Python文件/目录比较实战:排除特定类型的实用技巧
本文通过四个实战案例,详解如何使用Python比较目录差异并灵活排除特定文件,涵盖基础比较、大文件处理、跨平台适配与可视化报告生成,助力开发者高效完成目录同步与数据校验任务。
327 0
|
10月前
|
监控 Linux 数据安全/隐私保护
Python实现Word转PDF全攻略:从入门到实战
在数字化办公中,Python实现Word转PDF自动化,可大幅提升处理效率,解决格式兼容问题。本文详解五种主流方案,包括跨平台的docx2pdf、Windows原生的pywin32、服务器部署首选的LibreOffice命令行、企业级的Aspose.Words,以及轻量级的python-docx+pdfkit组合。每种方案均提供核心代码与适用场景,并涵盖中文字体处理、表格优化、批量进度监控等实用技巧,助力高效办公自动化。
2121 0

推荐镜像

更多