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()
目录
相关文章
|
4月前
|
存储 JavaScript Java
(Python基础)新时代语言!一起学习Python吧!(四):dict字典和set类型;切片类型、列表生成式;map和reduce迭代器;filter过滤函数、sorted排序函数;lambda函数
dict字典 Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。 我们可以通过声明JS对象一样的方式声明dict
319 1
|
4月前
|
存储 Java 数据处理
(numpy)Python做数据处理必备框架!(一):认识numpy;从概念层面开始学习ndarray数组:形状、数组转置、数值范围、矩阵...
Numpy是什么? numpy是Python中科学计算的基础包。 它是一个Python库,提供多维数组对象、各种派生对象(例如掩码数组和矩阵)以及用于对数组进行快速操作的各种方法,包括数学、逻辑、形状操作、排序、选择、I/0 、离散傅里叶变换、基本线性代数、基本统计运算、随机模拟等等。 Numpy能做什么? numpy的部分功能如下: ndarray,一个具有矢量算术运算和复杂广播能力的快速且节省空间的多维数组 用于对整组数据进行快速运算的标准数学函数(无需编写循环)。 用于读写磁盘数据的工具以及用于操作内存映射文件的工具。 线性代数、随机数生成以及傅里叶变换功能。 用于集成由C、C++
439 1
|
4月前
|
算法 Java Docker
(Python基础)新时代语言!一起学习Python吧!(三):IF条件判断和match匹配;Python中的循环:for...in、while循环;循环操作关键字;Python函数使用方法
IF 条件判断 使用if语句,对条件进行判断 true则执行代码块缩进语句 false则不执行代码块缩进语句,如果有else 或 elif 则进入相应的规则中执行
481 1
|
4月前
|
存储 Java 索引
(Python基础)新时代语言!一起学习Python吧!(二):字符编码由来;Python字符串、字符串格式化;list集合和tuple元组区别
字符编码 我们要清楚,计算机最开始的表达都是由二进制而来 我们要想通过二进制来表示我们熟知的字符看看以下的变化 例如: 1 的二进制编码为 0000 0001 我们通过A这个字符,让其在计算机内部存储(现如今,A 字符在地址通常表示为65) 现在拿A举例: 在计算机内部 A字符,它本身表示为 65这个数,在计算机底层会转为二进制码 也意味着A字符在底层表示为 1000001 通过这样的字符表示进行转换,逐步发展为拥有127个字符的编码存储到计算机中,这个编码表也被称为ASCII编码。 但随时代变迁,ASCII编码逐渐暴露短板,全球有上百种语言,光是ASCII编码并不能够满足需求
224 4
|
10月前
|
存储 JSON API
如何将 Swagger 文档导出为 PDF 文件
你会发现自己可能需要将 Swagger 文档导出为 PDF 或文件,以便于共享和存档。在这篇博文中,我们将指导你完成将 Swagger 文档导出为 PDF 格式的过程。
|
7月前
|
C#
【PDF提取内容改名】批量提取PDF指定区域内容重命名PDF文件,PDF自动提取内容命名的方案和详细步骤
本工具可批量提取PDF中的合同编号、日期、发票号等关键信息,支持PDF自定义区域提取并自动重命名文件,适用于合同管理、发票处理、文档归档和数据录入场景。基于iTextSharp库实现,提供完整代码示例与百度、腾讯网盘下载链接,助力高效处理PDF文档。
911 40
|
7月前
|
编译器 Python
如何利用Python批量重命名PDF文件
本文介绍了如何使用Python提取PDF内容并用于文件重命名。通过安装Python环境、PyCharm编译器及Jupyter Notebook,结合tabula库实现PDF数据读取与处理,并提供代码示例与参考文献。
|
9月前
|
人工智能 算法 安全
使用CodeBuddy实现批量转换PPT、Excel、Word为PDF文件工具
通过 CodeBuddy 实现本地批量转换工具,让复杂的文档处理需求转化为 “需求描述→代码生成→一键运行” 的极简流程,真正实现 “技术为效率服务” 的目标。感兴趣的快来体验下把
503 10
|
8月前
|
数据采集 存储 API
Python爬虫结合API接口批量获取PDF文件
Python爬虫结合API接口批量获取PDF文件
|
人工智能 编解码 文字识别
OCRmyPDF:16.5K Star!快速将 PDF 文件转换为可搜索、可复制的文档的命令行工具
OCRmyPDF 是一款开源命令行工具,专为将扫描的 PDF 文件转换为可搜索、可复制的文档。支持多语言、图像优化和多核处理。
1269 17
OCRmyPDF:16.5K Star!快速将 PDF 文件转换为可搜索、可复制的文档的命令行工具

推荐镜像

更多