python ppt pdf linux,带你用Python玩转PPT

1871993.html 如上图所示,通过幻灯片母版我们可以预设好各种各样的版式,后面新建幻灯片的时候只需要点击版式就可以一键生成所需的基本格式。

接着说说占位符 Placeholder

1871993.html占位符已经完成了样式设置,包括字体、字号、颜色等等,在特定占位符内输入文字可直接转化为特定的样式

3、创建 PPT 文件的基本思路

创建一个 PPT

从幻灯片母版中确定一个版式

在不同的占位符中填写不同的内容

添加图片、表格等额外内容

对样式进行修改

1871993.html

Python读取PPT

1、打开PPT文件

from pptx import Presentation# 这里给出需要打开的文件路径file_path = r'...'pptx = Presentation(file_path)

2、获取幻灯片页

用 pptx.slides 可以获得一个列表,包括所有的幻灯片页 slide 对象

for slide in pptx.slides:print(slide)

3、获取形状

只要熟悉了类似 Excel 和 Word 的多级结构, PPT 的结构就很好理解了。每一个幻灯片页都有一个或者多个形状 shape

for slide in pptx.slides:for shape in slide.shapes:print(shape)

4、获取文本框内容

要获取文字内容,很容易就联系到文字在形状 shape 的下级结构了 从 Word 中的学习我们也可以推知,文字的承载单位是段落 paragraph和文字块 run

很自然可以想到用下列的代码获取文字

for slide in pptx.slides:for shape in slide.shapes:for paragraph in shape.paragraphs:print(paragraph.text)

或者

for slide in pptx.slides:for shape in slide.shapes:for paragraph in shape.paragraphs:for run in paragraph.runs:print(run.text)

但这里出现了一个问题:每个形状里一定有文字吗?

1871993.html从上图可以看到,蓝色椭圆的形状里是没有任何文字的,中间的大虚线框有文字

一个形状中有没有文字,关键就在于它有没有包含文本框 text_frame,下面是与文本框有关的操作:

shape.has_text_frame 判断形状中是否有文字框

shape.text_frame 获取文字内容

在PPT中,文字框才是文字的载体,因此获取文字的代码如下:

for slide in pptx.slides:for shape in slide.shapes:if shape.has_text_frame:text_frame = shape.text_frameprint(text_frame.text)

到这里,我们需要对先前对 PPT 结构的认识进行修正:

1871993.html

5、获取段落和文字块

每一个文本框都可以看成是一个小的 Word 文件,里面有段落和文字块两级结构:

for slide in pptx.slides:for shape in slide.shapes:if shape.has_text_frame:text_frame = shape.text_framefor paragraph in text_frame.paragraphs:for run in paragraph.runs:print(run.text)

1871993.html

写入 PPT

创建全新 PPT 的代码可以类比创建 Word 文件的代码,实例化的过程中不给予具体路径则为创建空白文件

1、创建幻灯片页

1871993.html其中占位符编号是区分占位符的依据,也是写入内容的依据

2、往占位符填写内容

指定占位符编号就可以在具体位置写入特定内容

slide.placeholders[占位符编号].text = '...'

1871993.html

修改 PPT 样式

1、段落样式修改

可以同 python-docx 模块对段落样式的导入进行类比

1871993.html具体的方法上二者也有很多相似:

.add_run(): 添加新的文字块

.line_spacing: 段内行间距

.runs : 段落内的所有文字块

.space_after : 段后距

.space_before : 段前距

2、文字样式修改

文字样式方法和 Word 中的使用是相同的:

.font.name : 字体名称

.font.bold : 是否加粗

.font.italic : 是否斜体

.font.color : 字体颜色

.font.size: 字体大小

但有一个地方需要加以区别:在python-pptx 中,使用文字样式方法是基于段落,也就是 paragraph.font.xxxx, 而在 python-docx中,使用文字样式方法是基于文字块

1871993.html学完了这篇Python操作PPT之后,有关Python操作Word、Excel、PPT、PDF的基础就全部讲解完毕,之后我们会继续更新使用这些工具实现自动化办公的案例,如果你还不知道具体该如何应用,下面这些案例可能会有所帮助:

👉Python办公自动化从PPT到Word

👉Python办公自动化从Word到Excel

👉Python办公自动化从Excel到Word

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python中,你可以使用一些库来将PDF转换为PPT。其中一个常用的库是fitz,它是一个用于处理PDF文件的Python库。你可以使用fitz库将PDF文件转换为图片,然后将这些图片插入到PPT中。你还需要使用另一个库pptx来创建和编辑PPT文件。 以下是一个简单的示例代码,展示了如何使用fitz和pptx库将PDF转换为PPT: ```python import fitz from pptx import Presentation from pptx.util import Inches def pdf_to_ppt(pdf_path, ppt_path): # 打开PDF文件 doc = fitz.open(pdf_path) # 创建一个空的PPT文件 prs = Presentation() # 遍历PDF的每一页 for page in doc: # 将当前页保存为图片 pix = page.get_pixmap() image_path = 'temp.png' pix.save(image_path) # 在PPT中插入图片 slide = prs.slides.add_slide(prs.slide_layouts\[1\]) slide.shapes.add_picture(image_path, Inches(0), Inches(0), width=Inches(10), height=Inches(7.5)) # 保存PPT文件 prs.save(ppt_path) # 关闭PDF文件 doc.close() # 调用函数进行转换 pdf_to_ppt('input.pdf', 'output.pptx') ``` 请注意,这个代码只是将PDF作为图片插入到PPT中,并不是真正地将PDF转换为PPT格式。你需要安装fitz和pptx库,可以使用pip命令来安装所需的包。 参考资料: \[1\] https://www.cnblogs.com/loveprogramme/p/11247037.html \[2\] https://blog.csdn.net/weixin_46426157/article/details/108110894 \[3\] https://github.com/phasedOut/pdf2pptx \[4\] https://github.com/Derekchen147/pdf2ppt #### 引用[.reference_title] - *1* *3* [【Pythonpdfppt](https://blog.csdn.net/imliuqun123/article/details/127916413)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [利用pythonPDF转为PPT(课件专用)](https://blog.csdn.net/qq_43102225/article/details/127322427)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值