不用 win32com.client,用 python-pptx 和 Pillow 实现 PPTX 转图片!附代码及注意点
可以使用`python-pptx`库将PPTX文件逐页读取,然后借助`Pillow`库把每页内容绘制到图片上实现PPTX转为图片,以下是示例代码: ```python from pptx import Presentation from PIL import Image, ImageDraw, ImageFont def pptx_to_images(pptx_path, output_folder): # 打开PPTX文件 prs = Presentation(pptx_path) slide_index = 0 for slide in prs.slides: # 创建一个空白图像 width = int(prs.slide_width / 914400) height = int(prs.slide_height / 914400) image = Image.new('RGB', (width, height), color='white') draw = ImageDraw.Draw(image) # 这里可以添加更复杂的处理,比如提取文本、形状等 for shape in slide.shapes: if shape.has_text_frame: text = shape.text draw.text((10, 10), text, fill='black', font=ImageFont.load_default()) # 保存图像 image_path = f'{output_folder}/slide_{slide_index}.png' image.save(image_path) slide_index += 1 # 使用示例 pptx_path = 'your_pptx_file.pptx' output_folder = 'output_images' pptx_to_images(pptx_path, output_folder) ``` 代码解释 1. 导入必要的库:导入`Presentation`类用于读取PPTX文件,导入`Image`、`ImageDraw`和`ImageFont`类用于创建和处理图片。 2. 定义`pptx_to_images`函数:该函数接受PPTX文件路径和输出文件夹路径作为参数。 3. 打开PPTX文件:使用`Presentation`类打开指定的PPTX文件。 4. 遍历幻灯片:对PPTX文件中的每一页幻灯片进行处理。 5. 创建空白图像:根据幻灯片的宽度和高度创建一个空白的RGB图像。 6. 处理幻灯片内容:遍历幻灯片上的每个形状,如果形状包含文本框,则将文本绘制到图像上。 7. 保存图像:将处理后的图像保存到指定的输出文件夹中。 额外注意的逻辑点 1. 代码中只是简单地将文本绘制到图像上,对于更复杂的PPTX内容(如图片、图表等),需要进一步扩展代码来处理。 2. 要确保输出文件夹已经存在,否则保存图像时会抛出异常。 3. 对于文本的绘制,使用的是默认字体,可能无法满足所有的需求,可以根据需要选择合适的字体。 ######[AI写代码神器 | 610点数解答 | 2025-07-25 21:08:57]
- "Python's win32com.client: Step-by-Step Guide to Combining and Modifying Excel Workbooks"(GPT | 684点数解答 | 2024-06-12 15:25:29)309
- Python 利用 win32com 库:将 Excel 转换为 A4 横向 PDF 并单独打印首列(字节豆包 | 507点数解答 | 2025-03-10 15:48:12)304
- 不用 win32com.client,用 python-pptx 和 Pillow 实现 PPTX 转图片!附代码及注意点(字节豆包 | 610点数解答 | 2025-07-25 21:08:57)95
- Python 运行报错:urllib3 网络连接创建失败,原因及排查建议(字节豆包 | 161点数解答 | 2024-10-31 00:39:36)460
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)345
- 详解Python中win32com.client、time、os和shutil模块的含义(讯飞星火 | 145点数解答 | 2024-06-06 17:09:17)202
- Java调用Python方法:含if __name__判断的实现及代码示例 (讯飞星火 | 336点数解答 | 2024-06-07 16:33:41)320
- 探秘 ClientMain 类:Java 客户端代码解析(字节豆包 | 41点数解答 | 2024-11-15 18:00:17)249
- 职中生用PHP+MySQL+HTML搭建湘绣文化网站,功能全易上手!(DeepSeek | 3146点数解答 | 2025-05-08 23:00:48)207
- Python 实战:学生信息列表转字典、遍历、深拷贝及数据修改全流程(GPT | 422点数解答 | 2024-10-29 15:43:54)416
- Python实战:学生成绩列表转字典,深拷贝与数据修改操作全解析(字节豆包 | 254点数解答 | 2024-10-29 16:01:39)408
- 用 python-pptx 结合 win32com 实现 PPTX 文件转图片,附代码及注意事项(字节豆包 | 639点数解答 | 2025-07-25 21:08:19)106