fsi-strip-profile
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseWorkflow
工作流程
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:
- Create ONLY this one slide with PptxGenJS
- 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 - 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?
- 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
- Show slide image to user with download link
- 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
关键要求:必须逐张创建幻灯片,获得用户明确批准后再制作下一张。
每张幻灯片的制作流程:
- 仅使用PptxGenJS创建当前这一张幻灯片
- 强制要求:转换为图片以供审核 - 必须将幻灯片转换为图片,以便进行视觉验证:
bash
soffice --headless --convert-to pdf presentation.pptx pdftoppm -jpeg -r 150 -f 1 -l 1 presentation.pdf slide - 强制视觉审核:在继续制作前,必须仔细检查渲染后的幻灯片图片:
- 文本重叠检查:扫描所有文本元素——标签、项目符号或标题是否相互重叠?
- 文本截断检查:是否有文本在边界处被截断?所有文字是否完整可见?
- 图表边界检查:图表是否在容器内?所有坐标轴标签是否完整可见?
- 象限完整性检查:一个象限内的内容是否溢出到相邻象限?
- 如果检测到任何重叠或截断问题:立即按以下顺序修复:
- 第一步:缩小字体大小(减小1-2磅)
- 第二步:精简文本(缩写、移除次要信息)
- 第三步:调整元素位置或容器大小
- 重新渲染并再次验证 - 直到所有文本都能完整显示后再继续
- 向用户展示幻灯片图片并提供下载链接
- 停止操作,等待用户明确批准后再制作下一张幻灯片。在用户确认前不得继续。
每张幻灯片必须检查以下特定问题:
- 表格行与下方文本重叠
- 图表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 tbKey spacing principles:
- Put header + bullets in SAME textbox (no separate header textbox)
- Use after header,
space_after = Pt(6)between bulletsPt(3) - 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:- - controls bullet indentation (smaller = tighter)
bullet: { indent: 10 } - - space after each paragraph in points
paraSpaceAfter: 6 - 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 for layout inspiration. Adapt colors to each company's brand.
examples/Nike_Strip_Profile_Example.pptx可参考获取布局灵感。根据每家公司的品牌调整颜色。
examples/Nike_Strip_Profile_Example.pptxFirst 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.5Title 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)
| Quadrant | Position | Content |
|---|---|---|
| 1 | x=0.3, y=0.6, w=4.7, h=3.0 | Company Overview: HQ, founded, key stats, business summary (4-5 bullets) |
| 2 | x=5.0, y=0.6, w=4.7, h=3.0 | Business & Positioning: revenue drivers, products/services, competitive position, growth drivers (4-5 bullets) |
| 3 | x=0.3, y=3.7, w=4.7, h=3.5 | Key Financials: Revenue, EBITDA, margins, EPS, FCF + Valuation (Mkt Cap, EV, multiples) — table OR chart, not both |
| 4 | x=5.0, y=3.7, w=4.7, h=3.5 | For public companies: 1Y stock price chart + top shareholders. For private: Recent developments or Ownership/M&A history |
| 象限 | 位置 | 内容 |
|---|---|---|
| 1 | x=0.3, y=0.6, w=4.7, h=3.0 | 公司概述:总部、成立时间、关键数据、业务摘要(4-5个项目符号) |
| 2 | x=5.0, y=0.6, w=4.7, h=3.0 | 业务与定位:收入驱动因素、产品/服务、竞争地位、增长驱动因素(4-5个项目符号) |
| 3 | x=0.3, y=3.7, w=4.7, h=3.5 | 关键财务数据:收入、EBITDA、利润率、EPS、FCF + 估值指标(市值、EV、倍数)—— 仅使用表格或图表,不可同时使用 |
| 4 | x=5.0, y=3.7, w=4.7, h=3.5 | 上市公司:1年期股价图表 + 前几大股东。非上市公司:近期业务进展或股权/并购历史 |
Font Sizes - USE THESE EXACT VALUES
字体大小 - 必须使用以下精确值
| Element | Size | Notes |
|---|---|---|
| Slide title | 24pt | Bold, company brand color |
| Quadrant headers | 14pt | Bold, with accent bar |
| Body/bullet text | 11pt | Regular weight |
| Table text | 10pt | Use 9pt for dense tables |
| Chart labels | 9pt | Keep labels short |
| Source/footer | 8pt | Bottom 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 Type | Chart Type |
|---|---|
| Revenue trends | Line or column (multi-year) |
| Geographic breakdown | Horizontal bar |
| Product mix | Pie with percentages |
| Financial comparison | Column |
| 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 for financial data (fits in bottom-left quadrant for 4:3 slide):
slide.addTable()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
❌ Incorrect: HTML tables that don't convert properly to PowerPoint
Note: FY2024 revenue growth +1.0%, Net Income $5.1B...For projections, use Bear/Base/Bull case scenarios in structured tables.
始终使用原生PptxGenJS表格或图表 - 绝对不要使用纯文本描述或HTML表格。
使用展示财务数据(适配4:3幻灯片的左下象限):
slide.addTable()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] // 列宽
});❌ 错误示例: 纯文本描述,如
❌ 错误示例: 使用无法正确转换为PowerPoint的HTML表格
Note: FY2024 revenue growth +1.0%, Net Income $5.1B...对于预测数据,可在结构化表格中使用熊市/基准/牛市场景。
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文件创建的相关内容。