+
99
-

回答

使用ai的api接口生成json格式的章节信息,然后通过pptx库来替换模板中的占位符就能实现ai一键生成ppt了。

from pptx import Presentation

def replace_placeholders(template_path, output_path, placeholders_data):
    """
    替换 PPT 模板中的占位符内容,并保留样式
    :param template_path: 模板文件路径
    :param output_path: 生成的 PPT 文件路径
    :param placeholders_data: 占位符内容的字典,键为占位符名称,值为要替换的内容
    """
    # 加载模板
    prs = Presentation(template_path)

    # 遍历每一张幻灯片
    for slide in prs.slides:
        # 遍历幻灯片中的每一个形状
        for shape in slide.shapes:
            # 检查形状是否有文本
            if shape.has_text_frame:
                # 遍历文本框中的每一个段落
                for paragraph in shape.text_frame.paragraphs:
                    # 遍历段落中的每一个文本运行
                    for run in paragraph.runs:
                        # 检查文本运行的内容是否是占位符
                        if run.text in placeholders_data:
                            # 替换占位符内容,保留样式
                            run.text = placeholders_data[run.text]

    # 保存生成的 PPT
    prs.save(output_path)
    print(f"PPT 已生成并保存到: {output_path}")


# 示例数据
template_path = "template.pptx"  # 模板文件路径
output_path = "output.pptx"  # 生成的 PPT 文件路径
placeholders_data = {
    "{{title}}": "我的演示文稿",
    "{{subtitle}}": "使用 python-pptx 生成",
    "{{content1}}": "这是第一段内容",
    "{{footer}}": "页脚信息"
}

# 调用函数生成 PPT
replace_placeholders(template_path, output_path, placeholders_data)

网友回复

我知道答案,我要回答