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()