V2.0 五大核心增强: 锚点定位/原生图表/插件架构/WebSocket/LLM智能
This commit is contained in:
56
ppt_manager/create_sample_template.py
Normal file
56
ppt_manager/create_sample_template.py
Normal file
@@ -0,0 +1,56 @@
|
||||
from pptx import Presentation
|
||||
from pptx.util import Inches, Pt
|
||||
from pptx.enum.text import PP_ALIGN
|
||||
from pathlib import Path
|
||||
from loguru import logger
|
||||
|
||||
def create_sample_template():
|
||||
prs = Presentation()
|
||||
|
||||
prs.slide_width = Inches(10)
|
||||
prs.slide_height = Inches(7.5)
|
||||
|
||||
logger.info("正在创建23页示例静态PPT模板...")
|
||||
|
||||
for page_num in range(1, 24):
|
||||
slide_layout = prs.slide_layouts[5] if page_num == 1 else prs.slide_layouts[6]
|
||||
slide = prs.slides.add_slide(slide_layout)
|
||||
|
||||
left = Inches(1)
|
||||
top = Inches(0.5)
|
||||
width = Inches(8)
|
||||
height = Inches(1)
|
||||
|
||||
title_box = slide.shapes.add_textbox(left, top, width, height)
|
||||
tf = title_box.text_frame
|
||||
p = tf.paragraphs[0]
|
||||
|
||||
if page_num == 1:
|
||||
p.text = "宏观数据分析报告"
|
||||
p.font.size = Pt(36)
|
||||
else:
|
||||
p.text = f"第 {page_num} 页 - 示例内容"
|
||||
p.font.size = Pt(24)
|
||||
|
||||
p.font.bold = True
|
||||
p.alignment = PP_ALIGN.CENTER
|
||||
|
||||
if page_num not in [4, 5, 7, 10, 13]:
|
||||
content_left = Inches(1)
|
||||
content_top = Inches(2)
|
||||
content_width = Inches(8)
|
||||
content_height = Inches(4)
|
||||
|
||||
content_box = slide.shapes.add_textbox(content_left, content_top, content_width, content_height)
|
||||
content_tf = content_box.text_frame
|
||||
content_tf.text = "这里是静态内容区域,原理固定不变的部分。\n\n定期更新的数据内容将由Python脚本自动生成并替换对应页面。"
|
||||
content_tf.paragraphs[0].font.size = Pt(14)
|
||||
|
||||
output_path = Path(__file__).parent / "static_ppt" / "macro_analysis_template.pptx"
|
||||
output_path.parent.mkdir(parents=True, exist_ok=True)
|
||||
prs.save(str(output_path))
|
||||
logger.success(f"示例模板已创建: {output_path}")
|
||||
return str(output_path)
|
||||
|
||||
if __name__ == "__main__":
|
||||
create_sample_template()
|
||||
Reference in New Issue
Block a user