Python办公自动化【Word转换PDF、PDF读取内容、PDF合并文件、PDF拆分文件、PDF加密文件、PPT基本操作-增加幻灯片、增加内容】(六)-全面详解(学习总结---从入门到深化)(下)

简介: Python办公自动化【Word转换PDF、PDF读取内容、PDF合并文件、PDF拆分文件、PDF加密文件、PPT基本操作-增加幻灯片、增加内容】(六)-全面详解(学习总结---从入门到深化)

Python办公自动化【Word转换PDF、PDF读取内容、PDF合并文件、PDF拆分文件、PDF加密文件、PPT基本操作-增加幻灯片、增加内容】(六)-全面详解(学习总结---从入门到深化)(上):https://developer.aliyun.com/article/1420337


PDF拆分文件



在工作时,有时会碰到一个比较大的PDF的文件,页码数比较多。而我们又想将数据进行分割,又如何处理呢?


这时就需要一个操作拆分PDF,而拆分PDF的操作的思路是:


1、读取源PDF文件

2、写入到一个新的PDF文件中


代码

from PyPDF2 import
PdfFileReader,PdfFileWriter
def chai_pdf(path):
  # 读取文件
  reader = PdfFileReader(open(path,'rb'))
  # 获取页面数据
  for i,p in enumerate(reader.pages):
    writer = PdfFileWriter()
    writer.addPage(p)
    # 保存新pdf文件
    with open(f'./create_data/03_拆分pdf_{i}.pdf','wb') as f:
      writer.write(f)
if __name__ =='__main__':
  path = './create_data/02_合并pdf.pdf'
  chai_pdf(path)


PDF加密文件



代码

from asyncore import write
from PyPDF2 import PdfFileReader,PdfFileWriter
def jia_mi(path):
  # 读取数据
  reader = PdfFileReader(open(path,'rb'))
  # 创建写Pdf的对象
  writer = PdfFileWriter()
  # 写入密码
  writer.encrypt('123')
  # 把内容复制pdf的writer中
  for p in reader.pages:
    writer.addPage(p)
  # 保存数据
  with open('./create_data/04_加密pdf.pdf','wb') as f:
    writer.write(f)
if __name__ =='__main__':
  path = r'base_data\10_word转换成pdf.pdf'
  jia_mi(path)


PPT基本操作-增加幻灯片



当内容比较简洁时,使用Word编写内容比较单调,这时可以考虑使用PPT编写内容,而Python如何操作PPT呢?


这时可以使用第3方库 python-pptx 来操作PPT


安装


pip install python-pptx


常用方法与属性

函数名&属性&类  含义
pptx.Presentation()  创建PPT文件对象
ppt.slide_layouts[num]  选择PPT页面布局
ppt.slides.add_slide()  增加PPT页面
presentation.save(path)  保存文件


代码

# pip install python-pptx
def create_ppt():
  from pptx import Presentation
  # 创建ppt
  ppt = Presentation()
  # 增加幻灯片
 ppt.slides.add_slide(ppt.slide_layouts[0])
 ppt.slides.add_slide(ppt.slide_layouts[1])
 ppt.slides.add_slide(ppt.slide_layouts[3])
 ppt.slides.add_slide(ppt.slide_layouts[6])
  # 保存
  ppt.save('./create_data/01_创建PPT.pptx')
if __name__ == '__main__':
  create_ppt()


PPT基本操作-增加内容



常用方法与属性

函数名&属性&类 含义
slide.shapes  获取内容框
slide.shapes.title  获取内容框标题对象
slide.shapes.title.text  获取/设置内容框标题值
slide.shapes.placeholders[num]  获取第num个内容框
slide.placeholder.text 获取/设置内容框内容
slide.placeholder.text_frame.add_paragraph()  增加一个段落
paragraph.text  获取/设置段落内容
paragraph.level 获取/设置段落等级
paragraph.font.bold  设置段落字体
paragraph.font.size  设置段落字体大小
slide.shapes.add_textbox()  增加一个内容文本域


代码

from pptx import Presentation
from pptx.util import Pt
def create_info():
  # 创建一个ppt
  ppt = Presentation()
  # 添加内容
  # 增加第1个页面
  slide = ppt.slides.add_slide(ppt.slide_layouts[1])
  # 获取标题
  title = slide.shapes.title
  title.text = 'This is Python Title'
  # 获取内容框
  content = slide.placeholders[1]
  content.text = 'Content Info'
  # 增加第2个页面
  slide2 = ppt.slides.add_slide(ppt.slide_layouts[1])
  # 获取内容占位框
  content2 = slide2.placeholders[1]
  # 获取内容frame框对象
  tf = content2.text_frame
  # 增加段落内容
  par = tf.add_paragraph()
  # 设置段落内容
  par.text = '1级内容'
  # 设置内容等级
  par.level = 1
  par2 = tf.add_paragraph()
  par2.text = '2级内容'
  par2.level = 2
  par3 = tf.add_paragraph()
  par3.text = '3级内容'
  par3.level = 3
  # 增加第3个页面
  slide3 = ppt.slides.add_slide(ppt.slide_layouts[6])
  left = top = right = bottom = Pt(200)
  # 增加文本框
  tb = slide3.shapes.add_textbox(left,top,right,bottom)
  # 增加内容
  tf4 = tb.text_frame
  par4 = tf4.add_paragraph()
  par4.text = '1级内容'
  par4.font.bold = True
  par4.font.size = Pt(30)
  # 保存ppt
  ppt.save('./create_data/02_增加内容.pptx')
if __name__ =='__main__':
  create_info()
目录
相关文章
|
6月前
|
数据可视化 Linux iOS开发
Python脚本转EXE文件实战指南:从原理到操作全解析
本教程详解如何将Python脚本打包为EXE文件,涵盖PyInstaller、auto-py-to-exe和cx_Freeze三种工具,包含实战案例与常见问题解决方案,助你轻松发布独立运行的Python程序。
1522 2
|
5月前
|
监控 机器人 编译器
如何将python代码打包成exe文件---PyInstaller打包之神
PyInstaller可将Python程序打包为独立可执行文件,无需用户安装Python环境。它自动分析代码依赖,整合解释器、库及资源,支持一键生成exe,方便分发。使用pip安装后,通过简单命令即可完成打包,适合各类项目部署。
963 68
|
7月前
|
缓存 数据可视化 Linux
Python文件/目录比较实战:排除特定类型的实用技巧
本文通过四个实战案例,详解如何使用Python比较目录差异并灵活排除特定文件,涵盖基础比较、大文件处理、跨平台适配与可视化报告生成,助力开发者高效完成目录同步与数据校验任务。
238 0
|
11月前
|
存储 JSON API
如何将 Swagger 文档导出为 PDF 文件
你会发现自己可能需要将 Swagger 文档导出为 PDF 或文件,以便于共享和存档。在这篇博文中,我们将指导你完成将 Swagger 文档导出为 PDF 格式的过程。
|
8月前
|
C#
【PDF提取内容改名】批量提取PDF指定区域内容重命名PDF文件,PDF自动提取内容命名的方案和详细步骤
本工具可批量提取PDF中的合同编号、日期、发票号等关键信息,支持PDF自定义区域提取并自动重命名文件,适用于合同管理、发票处理、文档归档和数据录入场景。基于iTextSharp库实现,提供完整代码示例与百度、腾讯网盘下载链接,助力高效处理PDF文档。
982 40
|
8月前
|
编译器 Python
如何利用Python批量重命名PDF文件
本文介绍了如何使用Python提取PDF内容并用于文件重命名。通过安装Python环境、PyCharm编译器及Jupyter Notebook,结合tabula库实现PDF数据读取与处理,并提供代码示例与参考文献。
|
10月前
|
人工智能 算法 安全
使用CodeBuddy实现批量转换PPT、Excel、Word为PDF文件工具
通过 CodeBuddy 实现本地批量转换工具,让复杂的文档处理需求转化为 “需求描述→代码生成→一键运行” 的极简流程,真正实现 “技术为效率服务” 的目标。感兴趣的快来体验下把
533 10
|
9月前
|
数据采集 存储 API
Python爬虫结合API接口批量获取PDF文件
Python爬虫结合API接口批量获取PDF文件
|
人工智能 编解码 文字识别
OCRmyPDF:16.5K Star!快速将 PDF 文件转换为可搜索、可复制的文档的命令行工具
OCRmyPDF 是一款开源命令行工具,专为将扫描的 PDF 文件转换为可搜索、可复制的文档。支持多语言、图像优化和多核处理。
1312 17
OCRmyPDF:16.5K Star!快速将 PDF 文件转换为可搜索、可复制的文档的命令行工具
|
机器学习/深度学习 人工智能 文字识别
Zerox:AI驱动的万能OCR工具,精准识别复杂布局并输出Markdown格式,支持PDF、DOCX、图片等多种文件格式
Zerox 是一款开源的本地化高精度OCR工具,基于GPT-4o-mini模型,支持PDF、DOCX、图片等多种格式文件,能够零样本识别复杂布局文档,输出Markdown格式结果。
1424 4
Zerox:AI驱动的万能OCR工具,精准识别复杂布局并输出Markdown格式,支持PDF、DOCX、图片等多种文件格式

推荐镜像

更多