# -*- coding: utf-8 -*-
"""
竞赛汇报 PPT (22页) 高精矢量 SVG 生成器 (带 Chrome/Mac 浏览器 Mockup 系统截图占位符)
核心优化:
1. 拓展至 22 页,专设 4 大核心系统功能【真实截图展示页】,提供高端浏览器窗口外壳占位框
2. 全局保持超大字号与极致精简文本
3. 包含完整系统架构流程图、知识图谱与辩论流程
"""
import os
PROJECT_DIR = r"d:\code\XH-202626_科创企业特有风险的识别与管理\projects\XH-202626-presentation_ppt169_20260727"
OUTPUT_DIR = os.path.join(PROJECT_DIR, "svg_output")
os.makedirs(OUTPUT_DIR, exist_ok=True)
BG_COLOR = "#0A0F1E"
CARD_BG = "#111827"
CARD_SURFACE = "#1E293B"
CARD_BORDER = "#334155"
PRIMARY = "#3B82F6"
ACCENT = "#F97316"
SECONDARY_ACCENT = "#22D3EE"
TEXT_MAIN = "#F8FAFC"
TEXT_MUTED = "#94A3B8"
TEXT_SUB = "#CBD5E1"
POSITIVE = "#22C55E"
WARNING = "#EAB308"
NEGATIVE = "#EF4444"
FONT_TITLE = "SimHei, Microsoft YaHei, sans-serif"
FONT_BODY = "Microsoft YaHei, sans-serif"
def svg_header(title, subtitle):
return f'''
{title}
{subtitle}
'''
def svg_footer(page_num):
return ""
def svg_card(x, y, w, h, bg=CARD_BG, border=CARD_BORDER, border_w=1, rx=8):
return f''
def svg_browser_mockup(x, y, w, h, url="https://risk.aiformat.cn", label_title="界面截图占位", placeholder_tip="请在此处插入或替换真实系统运行截图"):
return f'''
https://{url}
{label_title}
{placeholder_tip}
'''
# ----------------- 22 页全套模板 -----------------
def gen_p01():
return f''''''
def gen_p02():
return f''''''
def gen_p03():
return f''''''
def gen_p04():
return f''''''
def gen_p05():
return f''''''
def gen_p06():
return f''''''
def gen_p07():
return f''''''
def gen_p08():
return f''''''
def gen_p09():
return f''''''
def gen_p10():
return f''''''
def gen_p11():
return f''''''
def gen_p12():
return f''''''
def gen_p13():
return f''''''
def gen_p14():
return f''''''
def gen_p15():
return f''''''
# --------------- [NEW] 四页大尺寸系统运行截图 Mockup 占位页 ---------------
def gen_p16():
return f''''''
def gen_p17():
return f''''''
def gen_p18():
return f''''''
def gen_p19():
return f''''''
def gen_p20():
return f''''''
def gen_p21():
return f''''''
def gen_p22():
return f''''''
def main():
generators = [
("01_cover.svg", gen_p01),
("02_contents.svg", gen_p02),
("03_background.svg", gen_p03),
("04_roadmap.svg", gen_p04),
("05_six_risk_model.svg", gen_p05),
("06_quant_paths.svg", gen_p06),
("07_architecture.svg", gen_p07),
("08_multi_agent.svg", gen_p08),
("09_conflict_rules.svg", gen_p09),
("10_kg_ontology.svg", gen_p10),
("11_contagion_algo.svg", gen_p11),
("12_pingan_products.svg", gen_p12),
("13_dynamic_pricing.svg", gen_p13),
("14_underwriting_report.svg", gen_p14),
("15_system_prototype.svg", gen_p15),
("16_screenshot_dashboard.svg", gen_p16),
("17_screenshot_debate.svg", gen_p17),
("18_screenshot_kg.svg", gen_p18),
("19_screenshot_pricing.svg", gen_p19),
("20_team_structure.svg", gen_p20),
("21_future_prospects.svg", gen_p21),
("22_thanks.svg", gen_p22),
]
print("开始生成包含 Chrome 浏览器截图 Mockup 占位符的全套 22 页矢量 SVG...")
for filename, gen in generators:
filepath = os.path.join(OUTPUT_DIR, filename)
content = gen()
with open(filepath, "w", encoding="utf-8") as f:
f.write(content)
print(f"[OK] 生成 SVG: {filename}")
main_script_path = os.path.join(PROJECT_DIR, "scratch", "generate_all_svgs.py")
with open(__file__, "r", encoding="utf-8") as src, open(main_script_path, "w", encoding="utf-8") as dst:
dst.write(src.read())
print(f"\n全套 22 页带截图 Mockup 占位符 SVG 成功更新!")
if __name__ == "__main__":
main()