fsi-strip-profile

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Workflow

工作流程

1. Clarify Requirements

1. 明确需求

  • Ask the user: Single-slide or multi-slide (3-4 slides)?
  • Ask the user: Any specific focus areas or topics to emphasize?
  • Only after user confirms, proceed to research
  • 询问用户:单张幻灯片还是多张幻灯片(3-4张)?
  • 询问用户:是否有需要重点突出的特定领域或主题?
  • 仅在用户确认后,再开展调研

2. Research & Planning

2. 调研与规划

Data Sources:
  • Primary: Company filings (BamSEC, SEC EDGAR - "Item 1. Business", MD&A), investor presentations, corporate website
  • Market data: Bloomberg, FactSet, CapIQ (price, shares, market cap, net debt, EV, ownership)
  • Estimates: FactSet/CapIQ consensus for NTM revenue, EBITDA, EPS
  • News: Press releases from last 90 days, M&A activity, guidance changes
Required Metrics:
  • Financials: Revenue, EBITDA, margins (%), EPS, FCF for ±3 years
  • Valuation: Market Cap, EV, EV/Revenue, EV/EBITDA, P/E multiples
  • Growth: YoY growth rates (%)
  • Ownership: Top 5 shareholders with % ownership
  • Segments: Product mix and/or geographic mix (% breakdown)
Normalization:
  • Convert all amounts to consistent currency
  • Scale consistently ($mm or $bn throughout, not mixed)
Before Building:
  • Print outline to chat with 4-5 bullet points per item (actual numbers, no placeholders)
  • Print style choices: fonts, colors (hex codes), chart types for each data set
  • Get user alignment: "Does this outline and visual strategy align with your vision?"
数据来源:
  • 主要来源:公司备案文件(BamSEC、SEC EDGAR - "Item 1. Business"、MD&A)、投资者演示文稿、企业官网
  • 市场数据:Bloomberg、FactSet、CapIQ(股价、股份数、市值、净债务、企业价值EV、股权结构)
  • 预测数据:FactSet/CapIQ的NTM收入、EBITDA、EPS共识预测
  • 新闻资讯:过去90天的新闻稿、并购活动、业绩指引变化
必备指标:
  • 财务数据:收入、EBITDA、利润率(%)、EPS、自由现金流FCF(前后3年数据)
  • 估值指标:市值、EV、EV/收入、EV/EBITDA、市盈率P/E倍数
  • 增长指标:同比增长率(%)
  • 股权结构:前5大股东及其持股比例(%)
  • 业务板块:产品结构和/或地域结构(占比%)
数据标准化:
  • 将所有金额转换为统一货币
  • 统一规模单位(全程使用百万美元$mm或十亿美元$bn,不可混用)
制作前准备:
  • 向用户发送大纲,每项包含4-5个要点(需为实际数据,不可使用占位符)
  • 告知用户样式选择:字体、颜色(十六进制代码)、各数据集对应的图表类型
  • 获取用户确认:"此大纲和视觉策略是否符合您的预期?"

3. Slide-by-Slide Creation

3. 逐张幻灯片制作

CRITICAL: You MUST create ONE slide at a time and get user approval before proceeding to the next slide.
For EACH slide:
  1. Create ONLY this one slide with PptxGenJS
  2. MANDATORY: Convert to image for review - You MUST convert slides to images so you can visually verify them:
    bash
    soffice --headless --convert-to pdf presentation.pptx
    pdftoppm -jpeg -r 150 -f 1 -l 1 presentation.pdf slide
  3. MANDATORY VISUAL REVIEW: You MUST carefully examine the rendered slide image before proceeding:
    • Text overlap check: Scan every text element - do any labels, bullets, or titles collide with each other?
    • Text cutoff check: Is any text truncated at boundaries? Are all words fully visible?
    • Chart boundary check: Do charts stay within their containers? Are ALL axis labels fully visible?
    • Quadrant integrity: Does content in one quadrant bleed into adjacent quadrants?
  4. If ANY overlap or cutoff is detected: Fix immediately using these strategies in order:
    • First: Reduce font size (go down 1-2pt)
    • Second: Shorten text (abbreviate, remove less critical info)
    • Third: Adjust element positions or container sizes
    • Re-render and verify again - do not proceed until all text fits cleanly
  5. Show slide image to user with download link
  6. STOP and wait for explicit user approval before creating the next slide. Do NOT proceed until user confirms.
YOU MUST CHECK FOR THESE SPECIFIC ISSUES ON EVERY PAGE:
  • Table rows colliding with text below them
  • Chart x-axis labels cut off at bottom
  • Long bullet points wrapping into adjacent content
  • Quadrant content bleeding into adjacent quadrants
  • Title text overlapping with content below
  • Legend text overlapping with chart elements
  • Footer/source text colliding with main content

关键要求:必须逐张创建幻灯片,获得用户明确批准后再制作下一张。
每张幻灯片的制作流程:
  1. 仅使用PptxGenJS创建当前这一张幻灯片
  2. 强制要求:转换为图片以供审核 - 必须将幻灯片转换为图片,以便进行视觉验证:
    bash
    soffice --headless --convert-to pdf presentation.pptx
    pdftoppm -jpeg -r 150 -f 1 -l 1 presentation.pdf slide
  3. 强制视觉审核:在继续制作前,必须仔细检查渲染后的幻灯片图片:
    • 文本重叠检查:扫描所有文本元素——标签、项目符号或标题是否相互重叠?
    • 文本截断检查:是否有文本在边界处被截断?所有文字是否完整可见?
    • 图表边界检查:图表是否在容器内?所有坐标轴标签是否完整可见?
    • 象限完整性检查:一个象限内的内容是否溢出到相邻象限?
  4. 如果检测到任何重叠或截断问题:立即按以下顺序修复:
    • 第一步:缩小字体大小(减小1-2磅)
    • 第二步:精简文本(缩写、移除次要信息)
    • 第三步:调整元素位置或容器大小
    • 重新渲染并再次验证 - 直到所有文本都能完整显示后再继续
  5. 向用户展示幻灯片图片并提供下载链接
  6. 停止操作,等待用户明确批准后再制作下一张幻灯片。在用户确认前不得继续。
每张幻灯片必须检查以下特定问题:
  • 表格行与下方文本重叠
  • 图表X轴标签在底部被截断
  • 长项目符号换行后侵入相邻内容
  • 象限内容溢出到相邻象限
  • 标题文本与下方内容重叠
  • 图例文本与图表元素重叠
  • 页脚/来源文本与主要内容重叠

Slide Format Requirements

幻灯片格式要求

Information Density is Critical

信息密度至关重要

The #1 goal is MAXIMUM information density. A busy executive should understand the entire company story in 30 seconds. Fill every quadrant to capacity.
Per quadrant targets:
  • Company Overview: 6-8 bullets minimum (HQ, founded, employees, CEO/CFO, market cap, ticker, industry, key stat)
  • Business & Positioning: 6-8 bullets (revenue drivers, products, market share %, competitive moat, customer count, geographic mix)
  • Key Financials: Table with 8-10 rows OR chart + 4-5 key metrics (Revenue, EBITDA, margins, EPS, FCF, growth rates, valuation multiples)
  • Fourth quadrant: 5-7 bullets (ownership %, recent M&A, developments, catalysts)
Information packing techniques:
  • Combine related facts: "HQ: Austin, TX; Founded: 2003; 140K employees"
  • Always include numbers: "$50B revenue" not "large revenue"
  • Add context: "EBITDA margin: 25% (vs. 18% industry avg)"
  • Include YoY changes: "Revenue: $125M (+28% YoY)"
  • Use percentages: "Enterprise: 62% of revenue"
If a quadrant looks sparse, add more:
  • Segment breakdowns with %
  • Geographic revenue splits
  • Customer concentration (top 10 = X%)
  • Recent contract wins with $ values
  • Guidance vs. consensus
  • Insider ownership %
Line spacing - use single textbox per section:
python
def add_section(slide, x, y, w, header_text, bullets, header_size=10, bullet_size=8):
    """Header + bullets in single textbox with natural spacing"""
    tb = slide.shapes.add_textbox(x, y, w, Inches(len(bullets) * 0.18 + 0.3))
    tf = tb.text_frame
    tf.word_wrap = True

    # Header paragraph
    p = tf.paragraphs[0]
    p.text = header_text
    p.font.bold = True
    p.font.size = Pt(header_size)
    p.font.color.rgb = RGBColor(0, 51, 102)
    p.space_after = Pt(6)  # Small gap after header

    # Bullet paragraphs
    for bullet in bullets:
        p = tf.add_paragraph()
        p.text = bullet
        p.font.size = Pt(bullet_size)
        p.space_after = Pt(3)
    return tb
Key spacing principles:
  • Put header + bullets in SAME textbox (no separate header textbox)
  • Use
    space_after = Pt(6)
    after header,
    Pt(3)
    between bullets
  • Don't hardcode gaps - let paragraph spacing handle it naturally
  • If content overflows, reduce font by 1pt rather than removing content

  • 3-4 dense slides - use quadrants, columns, tables, charts
  • Bullets for ALL body text - NEVER paragraphs. Use ONE textbox per section with all bullets inside - do NOT create separate textboxes for each bullet point. Use PptxGenJS bullet formatting:
    javascript
    // CORRECT: Single textbox with bullet list - each array item becomes a bullet
    // Position in top-left quadrant (Company Overview) - after header with accent bar
    slide.addText(
      [
        { text: 'Headquarters: Austin, Texas; Founded 2003', options: { bullet: { indent: 10 }, breakLine: true } },
        { text: 'Employees: 140,000+ globally across 6 continents', options: { bullet: { indent: 10 }, breakLine: true } },
        { text: 'CEO: Elon Musk; CFO: Vaibhav Taneja', options: { bullet: { indent: 10 }, breakLine: true } },
        { text: 'Market Cap: $850B (#6 globally by market cap)', options: { bullet: { indent: 10 }, breakLine: true } },
        { text: 'Segments: Automotive (85%), Energy (10%), Services (5%)', options: { bullet: { indent: 10 } } }
      ],
      { x: 0.45, y: 0.95, w: 4.5, h: 2.6, fontSize: 11, fontFace: 'Arial', valign: 'top', paraSpaceAfter: 6 }
    );
    
    // WRONG: Multiple separate textboxes for each bullet - causes alignment issues
    // slide.addText('Headquarters: Austin', { x: 0.5, y: 1.0, bullet: true });
    Bullet formatting tips:
    • bullet: { indent: 10 }
      - controls bullet indentation (smaller = tighter)
    • paraSpaceAfter: 6
      - space after each paragraph in points
    • Pack multiple related facts into each bullet (e.g., "HQ: Austin; Founded: 2003")
    • Include specific numbers and percentages for information density
  • Title case for titles (not ALL CAPS), left-aligned
  • Consistent fonts everywhere including tables
  • Company's brand colors - YOU MUST research actual brand colors via web search before creating slides. Do not guess or assume colors.
  • Follow brand guidelines if provided
首要目标是实现最大化的信息密度。忙碌的高管应能在30秒内了解公司的完整概况。每个象限都要填满信息。
每个象限的内容目标:
  • 公司概述:至少6-8个项目符号(总部、成立时间、员工数、CEO/CFO、市值、股票代码、行业、关键数据)
  • 业务与定位:6-8个项目符号(收入驱动因素、产品、市场份额%、竞争护城河、客户数量、地域结构)
  • 关键财务数据:包含8-10行的表格 或 图表+4-5个关键指标(收入、EBITDA、利润率、EPS、FCF、增长率、估值倍数)
  • 第四象限:5-7个项目符号(持股比例%、近期并购活动、业务进展、增长催化剂)
信息压缩技巧:
  • 合并相关事实:"总部:得克萨斯州奥斯汀;成立时间:2003年;员工数:14万"
  • 始终包含具体数字:"收入500亿美元"而非"收入庞大"
  • 添加背景信息:"EBITDA利润率:25%(行业平均为18%)"
  • 包含同比变化:"收入:1.25亿美元(同比增长28%)"
  • 使用百分比:"企业业务:占收入的62%"
如果象限内容稀疏,补充以下信息:
  • 业务板块占比(%)
  • 收入地域分布
  • 客户集中度(前10大客户占比X%)
  • 近期获得的带有金额的合同
  • 业绩指引与共识预测对比
  • 内部人员持股比例%
行间距 - 每个部分使用单个文本框:
python
def add_section(slide, x, y, w, header_text, bullets, header_size=10, bullet_size=8):
    """Header + bullets in single textbox with natural spacing"""
    tb = slide.shapes.add_textbox(x, y, w, Inches(len(bullets) * 0.18 + 0.3))
    tf = tb.text_frame
    tf.word_wrap = True

    # Header paragraph
    p = tf.paragraphs[0]
    p.text = header_text
    p.font.bold = True
    p.font.size = Pt(header_size)
    p.font.color.rgb = RGBColor(0, 51, 102)
    p.space_after = Pt(6)  # Small gap after header

    # Bullet paragraphs
    for bullet in bullets:
        p = tf.add_paragraph()
        p.text = bullet
        p.font.size = Pt(bullet_size)
        p.space_after = Pt(3)
    return tb
关键间距原则:
  • 将标题和项目符号放在同一个文本框中(不要单独创建标题文本框)
  • 标题后使用
    space_after = Pt(6)
    ,项目符号之间使用
    Pt(3)
  • 不要硬编码间距 - 让段落间距自然调整
  • 如果内容溢出,将字体缩小1磅而非删除内容

  • 3-4张高信息密度幻灯片 - 使用象限、分栏、表格、图表
  • 所有正文内容使用项目符号 - 绝对不要用段落。每个部分使用单个文本框包含所有项目符号 - 不要为每个项目符号创建单独的文本框。使用PptxGenJS的项目符号格式:
    javascript
    // 正确做法:单个文本框包含项目符号列表 - 数组中的每个元素成为一个项目符号
    // 位于左上象限(公司概述)- 带强调条的标题下方
    slide.addText(
      [
        { text: 'Headquarters: Austin, Texas; Founded 2003', options: { bullet: { indent: 10 }, breakLine: true } },
        { text: 'Employees: 140,000+ globally across 6 continents', options: { bullet: { indent: 10 }, breakLine: true } },
        { text: 'CEO: Elon Musk; CFO: Vaibhav Taneja', options: { bullet: { indent: 10 }, breakLine: true } },
        { text: 'Market Cap: $850B (#6 globally by market cap)', options: { bullet: { indent: 10 }, breakLine: true } },
        { text: 'Segments: Automotive (85%), Energy (10%), Services (5%)', options: { bullet: { indent: 10 } } }
      ],
      { x: 0.45, y: 0.95, w: 4.5, h: 2.6, fontSize: 11, fontFace: 'Arial', valign: 'top', paraSpaceAfter: 6 }
    );
    
    // 错误做法:为每个项目符号创建多个单独的文本框 - 会导致对齐问题
    // slide.addText('Headquarters: Austin', { x: 0.5, y: 1.0, bullet: true });
    项目符号格式技巧:
    • bullet: { indent: 10 }
      - 控制项目符号缩进(值越小,间距越紧凑)
    • paraSpaceAfter: 6
      - 每个段落之后的间距(单位:磅)
    • 将多个相关事实整合到一个项目符号中(例如:"总部:奥斯汀;成立时间:2003年")
    • 包含具体数字和百分比以提升信息密度
  • 标题使用标题大小写(不要全大写),左对齐
  • 所有位置使用统一字体,包括表格
  • 公司品牌色 - 在创建幻灯片前,必须通过网页搜索研究公司的实际品牌色。不得猜测或假设颜色。
  • 如果提供了品牌规范,请严格遵循

Visual Reference

视觉参考

See
examples/Nike_Strip_Profile_Example.pptx
for layout inspiration. Adapt colors to each company's brand.

可参考
examples/Nike_Strip_Profile_Example.pptx
获取布局灵感。根据每家公司的品牌调整颜色。

First Page Layout

首页布局

Must pass "30-second comprehension test" for a busy executive.
必须通过“30秒理解测试”,满足忙碌高管的需求。

Slide Setup (CRITICAL)

幻灯片设置(关键要求)

Use 4:3 aspect ratio (standard IB pitch book format):
javascript
const pptx = new pptxgen();
pptx.layout = 'LAYOUT_4x3';  // 10" wide × 7.5" tall - MUST USE THIS
使用4:3宽高比(标准投行推介手册格式):
javascript
const pptx = new pptxgen();
pptx.layout = 'LAYOUT_4x3';  // 10英寸宽 × 7.5英寸高 - 必须使用此设置

Slide Coordinate System

幻灯片坐标系

PptxGenJS uses inches. 4:3 slide = 10" wide × 7.5" tall.
  • x: horizontal position from left edge (0 = left, 10 = right)
  • y: vertical position from top edge (0 = top, 7.5 = bottom)
  • Content must stay within bounds - leave 0.3" margin on all sides
PptxGenJS使用英寸作为单位。4:3幻灯片的尺寸为10英寸宽 × 7.5英寸高
  • x:距左边缘的水平位置(0=最左侧,10=最右侧)
  • y:距顶部边缘的垂直位置(0=最顶部,7.5=最底部)
  • 内容必须在边界内 - 所有边保留0.3英寸的边距

First Page Positioning (in inches)

首页位置设置(单位:英寸)

┌─────────────────────────────────────────────────────────────────┐
│ y=0.2  Title: Company Name (Ticker)                             │
├────────────────────────────┬────────────────────────────────────┤
│ y=0.6  Company Overview    │ y=0.6  Business & Positioning      │
│ x=0.3, w=4.7               │ x=5.0, w=4.7                       │
│ h=3.0                      │ h=3.0                              │
├────────────────────────────┼────────────────────────────────────┤
│ y=3.7  Key Financials      │ y=3.7  Stock/Recent Developments   │
│ x=0.3, w=4.7               │ x=5.0, w=4.7                       │
│ h=3.5                      │ h=3.5                              │
└────────────────────────────┴────────────────────────────────────┘
                                                            y=7.5
┌─────────────────────────────────────────────────────────────────┐
│ y=0.2  标题:公司名称(股票代码)                             │
├────────────────────────────┬────────────────────────────────────┤
│ y=0.6  公司概述            │ y=0.6  业务与定位                  │
│ x=0.3, w=4.7               │ x=5.0, w=4.7                       │
│ h=3.0                      │ h=3.0                              │
├────────────────────────────┼────────────────────────────────────┤
│ y=3.7  关键财务数据        │ y=3.7  股票/近期业务进展           │
│ x=0.3, w=4.7               │ x=5.0, w=4.7                       │
│ h=3.5                      │ h=3.5                              │
└────────────────────────────┴────────────────────────────────────┘
                                                            y=7.5

Title Section (y=0.2)

标题区域(y=0.2)

Company Name (Ticker) - Example:
Tesla, Inc. (TSLA)
javascript
slide.addText('Tesla, Inc. (TSLA)', { x: 0.3, y: 0.2, w: 9.4, h: 0.35, fontSize: 18, bold: true });
公司名称(股票代码) - 示例:
Tesla, Inc. (TSLA)
javascript
slide.addText('Tesla, Inc. (TSLA)', { x: 0.3, y: 0.2, w: 9.4, h: 0.35, fontSize: 18, bold: true });

4-Quadrant Layout (y=0.6 to y=7.2)

四象限布局(y=0.6 至 y=7.2)

QuadrantPositionContent
1x=0.3, y=0.6, w=4.7, h=3.0Company Overview: HQ, founded, key stats, business summary (4-5 bullets)
2x=5.0, y=0.6, w=4.7, h=3.0Business & Positioning: revenue drivers, products/services, competitive position, growth drivers (4-5 bullets)
3x=0.3, y=3.7, w=4.7, h=3.5Key Financials: Revenue, EBITDA, margins, EPS, FCF + Valuation (Mkt Cap, EV, multiples) — table OR chart, not both
4x=5.0, y=3.7, w=4.7, h=3.5For public companies: 1Y stock price chart + top shareholders. For private: Recent developments or Ownership/M&A history
象限位置内容
1x=0.3, y=0.6, w=4.7, h=3.0公司概述:总部、成立时间、关键数据、业务摘要(4-5个项目符号)
2x=5.0, y=0.6, w=4.7, h=3.0业务与定位:收入驱动因素、产品/服务、竞争地位、增长驱动因素(4-5个项目符号)
3x=0.3, y=3.7, w=4.7, h=3.5关键财务数据:收入、EBITDA、利润率、EPS、FCF + 估值指标(市值、EV、倍数)—— 仅使用表格或图表,不可同时使用
4x=5.0, y=3.7, w=4.7, h=3.5上市公司:1年期股价图表 + 前几大股东。非上市公司:近期业务进展或股权/并购历史

Font Sizes - USE THESE EXACT VALUES

字体大小 - 必须使用以下精确值

ElementSizeNotes
Slide title24ptBold, company brand color
Quadrant headers14ptBold, with accent bar
Body/bullet text11ptRegular weight
Table text10ptUse 9pt for dense tables
Chart labels9ptKeep labels short
Source/footer8ptBottom of slide
CRITICAL: If text overflows, REDUCE font size by 1pt and re-render.
元素大小说明
幻灯片标题24磅加粗,使用公司品牌色
象限标题14磅加粗,左侧带强调条
正文/项目符号文本11磅常规字重
表格文本10磅内容密集的表格使用9磅
图表标签9磅标签尽量简短
来源/页脚8磅位于幻灯片底部
关键要求:如果文本溢出,将字体大小减小1磅并重新渲染。

Visual Accents (REQUIRED)

视觉强调元素(必填)

Each quadrant header MUST have a colored accent bar to the left:
javascript
// Add accent bar for quadrant header
slide.addShape(pptx.shapes.RECTANGLE, {
  x: 0.3, y: 0.6, w: 0.08, h: 0.25,
  fill: { color: 'E31937' }  // Use company brand color
});
slide.addText('Company Overview', {
  x: 0.45, y: 0.6, w: 4.5, h: 0.3, fontSize: 14, bold: true, fontFace: 'Arial'
});
Visual elements to include:
  • Accent bars next to all section headers (brand color)
  • Thin horizontal divider line between top and bottom quadrants
  • Company logo in top-right corner if available
  • Subtle gridlines in tables (light gray #CCCCCC)
每个象限标题左侧必须带有彩色强调条:
javascript
// 为象限标题添加强调条
slide.addShape(pptx.shapes.RECTANGLE, {
  x: 0.3, y: 0.6, w: 0.08, h: 0.25,
  fill: { color: 'E31937' }  // 使用公司品牌色
});
slide.addText('Company Overview', {
  x: 0.45, y: 0.6, w: 4.5, h: 0.3, fontSize: 14, bold: true, fontFace: 'Arial'
});
需包含的视觉元素:
  • 所有章节标题旁的强调条(使用品牌色)
  • 上下象限之间的细水平分隔线
  • 右上角的公司标志(如果有)
  • 表格中的细微网格线(浅灰色#CCCCCC)

First Page Formatting

首页格式规范

  • Font: Arial (or as specified by user/brand guidelines)
  • Quadrant titles: Title Case (not ALL CAPS), e.g., "Company Overview" not "COMPANY OVERVIEW"
  • Bullets: Bold key terms at start, e.g., "Market Position: Leading global manufacturer..."
  • White background only — no boxes, fills, or shading
  • Section headers: bold text, follow brand guidelines for styling
  • All quadrants equally sized and aligned

  • 字体:Arial(或遵循用户/品牌规范指定的字体)
  • 象限标题:标题大小写(不要全大写),例如“Company Overview”而非“COMPANY OVERVIEW”
  • 项目符号:开头的关键术语加粗,例如“市场地位: 全球领先制造商...”
  • 仅使用白色背景 — 不要使用方框、填充或阴影
  • 章节标题:加粗文本,遵循品牌规范的样式
  • 所有象限大小一致、对齐整齐

Subsequent Pages: Free-Form Layouts

后续页面:自由布局

  • Two-column (40/60 or 50/50), full-slide charts, or sidebar layouts
  • Each page elaborates on first page content
  • Maintain consistent typography and color scheme
  • Suggested flow: Products/Market → Financial Analysis → Leadership

  • 双栏布局(40/60或50/50)、全屏图表或侧边栏布局
  • 每页内容是首页内容的延伸
  • 保持统一的排版和配色方案
  • 建议的内容流程:产品/市场 → 财务分析 → 管理层介绍

Charts (Multi-Slide Profiles)

图表(多幻灯片简介)

For multi-slide profiles: Include 2-3 actual PptxGenJS charts. Never use placeholder divs or static images.
For single-slide profiles: Use tables for financials (more space-efficient). Only add a chart if it replaces the table, not in addition to it.
Data TypeChart Type
Revenue trendsLine or column (multi-year)
Geographic breakdownHorizontal bar
Product mixPie with percentages
Financial comparisonColumn
Stock price (1Y daily)Line
对于多幻灯片简介:包含2-3个实际的PptxGenJS图表。不得使用占位符div或静态图片。
对于单幻灯片简介:使用表格展示财务数据(更节省空间)。仅在替换表格的情况下添加图表,不可同时使用。
数据类型图表类型
收入趋势折线图或柱状图(多年数据)
地域分布水平条形图
产品结构带百分比的饼图
财务对比柱状图
股价(1年每日数据)折线图

Chart Code Examples

图表代码示例

Horizontal Bar (fits in bottom-right quadrant for 4:3 slide):
javascript
slide.addChart(pptx.charts.BAR, [{
  name: 'FY2024 Revenue by Region',
  labels: ['North America', 'EMEA', 'China', 'APLA'],
  values: [21.4, 13.6, 7.6, 6.7]
}], {
  x: 5.0, y: 4.1, w: 4.5, h: 3.0,  // Fits in bottom-right quadrant (4:3)
  barDir: 'bar', chartColors: ['FF6B35'], showValue: true,
  dataLabelFontSize: 10, catAxisLabelFontSize: 10, valAxisLabelFontSize: 10,
  dataLabelFormatCode: '$#,##0.0B',
  title: 'Revenue by Geography', titleFontSize: 12, titleBold: true
});
Pie Chart (fits in bottom-right quadrant for 4:3 slide):
javascript
slide.addChart(pptx.charts.PIE, [{
  name: 'Product Mix',
  labels: ['Footwear', 'Apparel', 'Equipment'],
  values: [68, 29, 3]
}], {
  x: 5.0, y: 4.1, w: 4.5, h: 3.0,  // Fits in bottom-right quadrant (4:3)
  showPercent: true, showLegend: true, legendPos: 'r',
  dataLabelFontSize: 10, legendFontSize: 10,
  chartColors: ['FF6B35', '2C2C2C', '4A4A4A'],
  title: 'Revenue Mix FY24', titleFontSize: 12, titleBold: true
});
Line Chart (full width for subsequent slides):
javascript
slide.addChart(pptx.charts.LINE, [{
  name: 'Revenue ($B)',
  labels: ['FY21', 'FY22', 'FY23', 'FY24', 'FY25E'],
  values: [44.5, 46.7, 48.5, 51.4, 54.2]
}], {
  x: 0.3, y: 1.2, w: 9.4, h: 5.5,  // Full width for 4:3 slide
  chartColors: ['FF6B35'], showValue: true, lineSmooth: true,
  dataLabelFontSize: 11, catAxisLabelFontSize: 11, valAxisLabelFontSize: 11,
  title: 'Revenue Trend & Forecast', titleFontSize: 14, titleBold: true
});

水平条形图(适配4:3幻灯片的右下象限):
javascript
slide.addChart(pptx.charts.BAR, [{
  name: 'FY2024 Revenue by Region',
  labels: ['North America', 'EMEA', 'China', 'APLA'],
  values: [21.4, 13.6, 7.6, 6.7]
}], {
  x: 5.0, y: 4.1, w: 4.5, h: 3.0,  // 适配4:3幻灯片的右下象限
  barDir: 'bar', chartColors: ['FF6B35'], showValue: true,
  dataLabelFontSize: 10, catAxisLabelFontSize: 10, valAxisLabelFontSize: 10,
  dataLabelFormatCode: '$#,##0.0B',
  title: 'Revenue by Geography', titleFontSize: 12, titleBold: true
});
饼图(适配4:3幻灯片的右下象限):
javascript
slide.addChart(pptx.charts.PIE, [{
  name: 'Product Mix',
  labels: ['Footwear', 'Apparel', 'Equipment'],
  values: [68, 29, 3]
}], {
  x: 5.0, y: 4.1, w: 4.5, h: 3.0,  // 适配4:3幻灯片的右下象限
  showPercent: true, showLegend: true, legendPos: 'r',
  dataLabelFontSize: 10, legendFontSize: 10,
  chartColors: ['FF6B35', '2C2C2C', '4A4A4A'],
  title: 'Revenue Mix FY24', titleFontSize: 12, titleBold: true
});
折线图(适配后续页面的全屏宽度):
javascript
slide.addChart(pptx.charts.LINE, [{
  name: 'Revenue ($B)',
  labels: ['FY21', 'FY22', 'FY23', 'FY24', 'FY25E'],
  values: [44.5, 46.7, 48.5, 51.4, 54.2]
}], {
  x: 0.3, y: 1.2, w: 9.4, h: 5.5,  // 适配4:3幻灯片的全屏宽度
  chartColors: ['FF6B35'], showValue: true, lineSmooth: true,
  dataLabelFontSize: 11, catAxisLabelFontSize: 11, valAxisLabelFontSize: 11,
  title: 'Revenue Trend & Forecast', titleFontSize: 14, titleBold: true
});

Financial Data Formatting

财务数据格式规范

Always use native PptxGenJS tables or charts - NEVER plain text prose or HTML tables.
Use
slide.addTable()
for financial data (fits in bottom-left quadrant for 4:3 slide):
javascript
// Add header with accent bar first
slide.addShape(pptx.shapes.RECTANGLE, {
  x: 0.3, y: 3.7, w: 0.08, h: 0.25, fill: { color: 'E31937' }
});
slide.addText('Key Financials & Valuation', {
  x: 0.45, y: 3.7, w: 4.5, h: 0.3, fontSize: 14, bold: true, fontFace: 'Arial'
});

// Financial data table
slide.addTable([
  [{ text: 'Metric', options: { bold: true, fill: '003366', color: 'FFFFFF' } },
   { text: 'FY24', options: { bold: true, fill: '003366', color: 'FFFFFF' } },
   { text: 'FY25E', options: { bold: true, fill: '003366', color: 'FFFFFF' } }],
  ['Revenue', '$51.4B', '$54.2B'],
  ['YoY Growth', '+6.0%', '+5.5%'],
  ['EBITDA', '$8.9B', '$9.5B'],
  ['EBITDA Margin', '17.3%', '17.5%'],
  ['EPS', '$3.42', '$3.75'],
  ['Market Cap', '$185B', '—'],
  ['EV/EBITDA', '12.5x', '11.7x']
], {
  x: 0.45, y: 4.1, w: 4.3, h: 3.0,  // Below header in bottom-left quadrant
  fontFace: 'Arial', fontSize: 10,
  border: { pt: 0.5, color: 'CCCCCC' },
  valign: 'middle',
  colW: [1.8, 1.25, 1.25]  // Column widths
});
Incorrect: Plain text like
Note: FY2024 revenue growth +1.0%, Net Income $5.1B...
Incorrect: HTML tables that don't convert properly to PowerPoint
For projections, use Bear/Base/Bull case scenarios in structured tables.

始终使用原生PptxGenJS表格或图表 - 绝对不要使用纯文本描述或HTML表格。
使用
slide.addTable()
展示财务数据(适配4:3幻灯片的左下象限):
javascript
// 先添加带强调条的标题
slide.addShape(pptx.shapes.RECTANGLE, {
  x: 0.3, y: 3.7, w: 0.08, h: 0.25, fill: { color: 'E31937' }
});
slide.addText('Key Financials & Valuation', {
  x: 0.45, y: 3.7, w: 4.5, h: 0.3, fontSize: 14, bold: true, fontFace: 'Arial'
});

// 财务数据表格
slide.addTable([
  [{ text: 'Metric', options: { bold: true, fill: '003366', color: 'FFFFFF' } },
   { text: 'FY24', options: { bold: true, fill: '003366', color: 'FFFFFF' } },
   { text: 'FY25E', options: { bold: true, fill: '003366', color: 'FFFFFF' } }],
  ['Revenue', '$51.4B', '$54.2B'],
  ['YoY Growth', '+6.0%', '+5.5%'],
  ['EBITDA', '$8.9B', '$9.5B'],
  ['EBITDA Margin', '17.3%', '17.5%'],
  ['EPS', '$3.42', '$3.75'],
  ['Market Cap', '$185B', '—'],
  ['EV/EBITDA', '12.5x', '11.7x']
], {
  x: 0.45, y: 4.1, w: 4.3, h: 3.0,  // 位于左下象限的标题下方
  fontFace: 'Arial', fontSize: 10,
  border: { pt: 0.5, color: 'CCCCCC' },
  valign: 'middle',
  colW: [1.8, 1.25, 1.25]  // 列宽
});
错误示例: 纯文本描述,如
Note: FY2024 revenue growth +1.0%, Net Income $5.1B...
错误示例: 使用无法正确转换为PowerPoint的HTML表格
对于预测数据,可在结构化表格中使用熊市/基准/牛市场景。

Quality Checklist

质量检查清单

First Page

首页

  • Title section with company name, ticker, industry
  • Exactly 4 equal quadrants below title
  • All bullets, no paragraphs, 1 line max each
  • Financials in table or chart (not both)
  • 包含公司名称、股票代码、行业的标题区域
  • 标题下方有恰好4个大小相等的象限
  • 全部使用项目符号,无段落,每个项目符号最多1行
  • 财务数据使用表格或图表(不可同时使用)

All Slides

所有幻灯片

  • No text overflow or cutoff
  • Consistent fonts and colors throughout
  • Charts render correctly
  • No placeholder text - all actual data
  • Consistent scaling ($mm or $bn, not mixed)
  • Sources cited
  • Investment banking quality (GS/MS/JPM standard)
Note: Reference the PPTX skill for PowerPoint file creation.
  • 无文本溢出或截断
  • 全程使用统一的字体和颜色
  • 图表渲染正常
  • 无占位符文本 - 所有数据均为实际数据
  • 单位统一(使用$mm或$bn,不可混用)
  • 标注数据来源
  • 达到投资银行级质量(高盛/摩根士丹利/摩根大通标准)
注意: 可参考PPTX skill了解PowerPoint文件创建的相关内容。