python基于json来生成简洁ppt文件示例代码

代码语言:python

所属分类:其他

代码描述:python基于json来生成简洁ppt文件示例代码,使用了pptx库来通过ai生成的ppt的json配置文件赖生成pptx文件。

代码标签: python 基于 json 生成 简洁 ppt 文件 示例 代码

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

#!/usr/bin/env python3
# -*- coding: utf-8 -*-


from pptx import Presentation
from pptx.util import Inches, Pt, Cm
from pptx.enum.text import PP_ALIGN, PP_PARAGRAPH_ALIGNMENT
from pptx.dml.color import RGBColor
from pptx.enum.shapes import MSO_SHAPE
import json
import sys


class PPTGenerator:
    """PPT生成器类"""

    # 颜色方案
    COLOR_SCHEMES = {
        "暖色调": {
            "primary": RGBColor(255, 107, 107),    # #FF6B6B
            "secondary": RGBColor(255, 217, 61),   # #FFD93D
            "accent": RGBColor(107, 203, 119),     # #6BCB77
            "text": RGBColor(51, 51, 51),          # #333333
            "background": RGBColor(255, 255, 255), # #FFFFFF
        },
        "商务简约": {
            "primary": RGBColor(44, 62, 80),       # #2C3E50
            "secondary": RGBColor(52, 152, 219),   # #3498DB
            "accent": RGBColor(149, 165, 166),     # #95A5A6
            "text": RGBColor(51, 51, 51),
            "background": RGBColor(255, 255, 255),
        },
        "莫兰迪色系": {
            "primary": RGBColor(180, 167, 167),    # #B4A7A7
            "secondary": RGBColor(168, 218, 220),  # #A8DADC
            "accent": RGBColor(241, 250, 238),     # #F1FAEE
            "text": RGBColor(51, 51, 51),
            "background": RGBColor(255, 255, 255),
        }
    }

    def __init__(self, theme="商务简约"):
        """初始化PPT生成器"""
        self.prs = Presentation()
        # 设置幻灯片尺寸为16:9
        self.prs.slide_width = Cm(33.867)   # 12192000 EMU
        self.prs.slide_height = Cm(19.05)   # 6858000 EMU

        self.theme = theme
        self.colors = self.COLOR_SCHEMES.get(theme, self.COLOR_SCHEMES["商务简约"])

    def add_decorative_shapes(self, slide, style="default"):
        """添加装饰形状"""
        # 根据不同风格添加不同的装饰元素
        if style == "cover":
            # 封面装饰:左上角圆形
            shape = slide.shapes.add_shape(
                MSO_SHAPE.OVAL,
                Inches(0.5), Inches(0.5),
                Inches(1.5), Inches(1.5)
            )
            shape.fill.solid()
            shape.fill.fore_color.rgb = self.colors["primary"]
            shape.line.fill.background()

            # 右下角装饰
           .........完整代码请登录后点击上方下载按钮下载查看

网友评论0