Claude CodeはHTMLスライドをPuppeteer/PlaywrightでPDF変換するワークフローで、デザイナー不要の営業資料・提案書量産を実現します。テンプレートHTMLに顧客名・数値・グラフを差し替えるだけで個別資料を量産でき、PowerPoint作業時間を90%以上削減できます。
Claude CodeはHTMLスライドをPuppeteer/PlaywrightでPDF変換するワークフローで、デザイナー不要の営業資料・提案書量産を実現します。テンプレートHTMLに顧客名・数値・グラフを差し替えるだけで個別資料を量産でき、PowerPoint作業時間を90%以上削減できます。
HubSpot導入、AI活用、CRM整備、業務効率化までをまとめて支援しています。記事で気になったテーマを、そのまま相談ベースで整理できます。
プレゼン資料の作成ツールといえば、PowerPointやGoogle Slidesが定番です。しかし、これらのツールには「量産」という観点で明確な限界があります。
PowerPointで顧客ごとにカスタマイズした提案書を作るとき、テンプレートを開いてロゴを差し替え、数値を書き換え、グラフを更新し、レイアウトを微調整する作業が毎回発生します。月に10社への提案があれば、それだけで数十時間が消えます。
HTMLスライドは、この問題をコードベースのアプローチで解決します。
| 観点 | PowerPoint / Google Slides | HTMLスライド + PDF変換 |
|---|---|---|
| 作成速度(初回) | 1〜3時間(手動レイアウト) | 5〜15分(Claude Codeで自動生成) |
| カスタマイズ | 手動で都度書き換え | 変数を差し替えるだけで自動反映 |
| デザイン統一 | テンプレート依存、崩れやすい | CSSで厳密に制御、崩れない |
| バージョン管理 | ファイル名に「v2_最終_確定版」 | Gitで変更履歴を完全管理 |
| グラフ・図表 | 手動でExcelから貼り付け | Chart.js・SVGで動的に生成 |
| 量産性 | 低い(1部ずつ手作業) | 高い(ループ処理で一括生成) |
| 配布形式 | .pptxまたは共有リンク | PDF(環境依存なし) |
ポイント: HTMLスライドは「毎回ゼロから作るクリエイティブな資料」ではなく、「構造が決まっていて、数値や顧客名を差し替えて量産する定型資料」に最適です。営業提案書、月次報告書、プロジェクト進捗レポートなどがその代表例です。
Claude Codeにプレゼン資料の作成を指示すると、HTMLファイルとしてスライドが生成されます。実際の流れを見てみましょう。
Claude Codeのターミナルで以下のように指示します。
提案書を作成してください。
- 対象: 株式会社〇〇 マーケティング部
- テーマ: CRM導入による営業効率化
- ページ構成: 表紙、課題整理、提案概要、導入ステップ、期待効果、費用、会社概要
- デザイン: 青基調、A4横向き
Claude Codeはこの指示を解釈し、1枚のHTMLファイルとして複数ページのスライドを生成します。
Claude Codeが生成するHTMLスライドは、以下のような構造になります。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<style>
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;700&display=swap');
* { margin: 0; padding: 0; box-sizing: border-box; }
body { font-family: 'Noto Sans JP', sans-serif; }
.slide {
width: 1280px;
height: 720px;
padding: 60px;
page-break-after: always;
position: relative;
}
.slide-title {
font-size: 36px;
font-weight: 700;
color: #2563EB;
margin-bottom: 32px;
}
.slide-body {
font-size: 20px;
line-height: 1.8;
color: #1a1a1a;
}
</style>
</head>
<body>
<!-- 以降のスライド -->
</body>
</html>
各スライドは
HTMLスライドをPDFに変換するには、ヘッドレスブラウザ(画面表示なしで動作するブラウザ)を使います。Puppeteer(Googleが開発)またはPlaywright(Microsoftが開発)のどちらでも実現できます。
const puppeteer = require('puppeteer');
const path = require('path');
async function htmlToPdf(inputHtml, outputPdf) {
const browser = await puppeteer.launch();
const page = await browser.newPage();
// HTMLファイルを読み込み
const filePath = path.resolve(inputHtml);
await page.goto(`file://${filePath}`, { waitUntil: 'networkidle0' });
// PDF出力
await page.pdf({
path: outputPdf,
width: '1280px',
height: '720px',
printBackground: true,
margin: { top: 0, right: 0, bottom: 0, left: 0 }
});
await browser.close();
console.log(`PDF生成完了: ${outputPdf}`);
}
htmlToPdf('./proposal.html', './proposal.pdf');
const { chromium } = require('playwright');
const path = require('path');
async function htmlToPdf(inputHtml, outputPdf) {
const browser = await chromium.launch();
const page = await browser.newPage();
const filePath = path.resolve(inputHtml);
await page.goto(`file://${filePath}`, { waitUntil: 'networkidle' });
await page.pdf({
path: outputPdf,
width: '1280px',
height: '720px',
printBackground: true,
margin: { top: 0, right: 0, bottom: 0, left: 0 }
});
await browser.close();
console.log(`PDF生成完了: ${outputPdf}`);
}
htmlToPdf('./proposal.html', './proposal.pdf');
page.pdf() APIで指定できる主要なオプションは以下のとおりです。
| オプション | 説明 | 設定例 |
|---|---|---|
| path | 出力ファイルパス | './output.pdf' |
| width / height | ページサイズ | '1280px' / '720px'(16:9) |
| format | 定型サイズ | 'A4'(width/heightと排他) |
| landscape | 横向き | true(A4横向きの場合) |
| printBackground | 背景色・画像を印刷 | true(必須。falseだと白背景になる) |
| margin | 余白 | { top: '0', right: '0', bottom: '0', left: '0' } |
| displayHeaderFooter | ヘッダー・フッター | true |
| headerTemplate | ヘッダーHTML | ' |
| footerTemplate | フッターHTML | ' |
ポイント:
printBackground: trueは必ず指定してください。これを忘れると、CSSで設定した背景色やグラデーションがすべて消えた状態でPDFが出力されます。HTMLスライドでは背景色がデザインの重要な要素になるため、この設定は必須です。
営業提案書のテンプレートHTMLを1つ用意し、顧客ごとに情報を差し替えて生成するパターンです。
以下のテンプレートを使って、株式会社ABCマーケティング向けの提案書を作成してください。
- 業種: 不動産
- 課題: リード管理が属人化している
- 提案: HubSpot CRM導入
- 期待効果: リード対応速度50%改善
Claude Codeがテンプレートの構造を維持しながら、顧客固有の情報を埋め込んだHTMLを生成します。同じ指示の顧客名と課題を変えるだけで、次の提案書も数分で完成します。
CRMやアナリティクスのデータをもとに、月次報告書を自動生成するパターンです。
先月のマーケティング実績をスライドにまとめてください。
- PV: 45,230(前月比+12%)
- リード獲得: 128件(前月比+8%)
- MQL転換率: 23%
- 商談創出: 29件
- Chart.jsで折れ線グラフを入れてください
Chart.jsを使ったグラフもHTMLに直接埋め込めるため、Excelでグラフを作ってスクリーンショットを貼り付けるといった作業が不要になります。
社内向けのプロジェクト進捗報告書も、同じ仕組みで量産できます。タスクの進捗率、マイルストーンの達成状況、リスク一覧などを構造化したデータとして渡せば、Claude Codeが視覚的に整理されたスライドを生成します。
HTMLスライドの強みの一つが、グラフや図表をコードで生成できることです。PowerPointのようにExcelからコピー&ペーストする必要がなく、データを変えればグラフも自動的に更新されます。
プロセスフローやアーキテクチャ図は、SVGで直接描画できます。SVGはHTMLに直接埋め込めるベクター画像形式で、拡大しても劣化しません。
Claude Codeに「導入ステップを4段階のフロー図で入れて」と指示するだけで、このようなSVGが自動生成されます。
一度作成したHTMLスライドをテンプレートとして再利用する仕組みを構築すれば、資料作成の効率は飛躍的に向上します。
テンプレート化のポイントは、「変わる部分」と「変わらない部分」を明確に分離することです。
テンプレート proposal_template.html をベースに、以下の情報で提案書を生成してください。
- 顧客名: 株式会社DEFコーポレーション
- 業種: 製造業
- 従業員数: 350名
- 課題: 営業とマーケの情報連携が断絶
Claude Codeはテンプレートの構造を維持しつつ、指定した情報を適切な箇所に埋め込みます。CSSによるデザインは一切変わらないため、毎回同じ品質の資料が出力されます。
複数社向けの資料を一括生成する場合は、以下のような構成が有効です。
const companies = [
{ name: '株式会社ABC', industry: '不動産', issue: 'リード管理の属人化' },
{ name: '株式会社DEF', industry: '製造業', issue: '営業とマーケの情報断絶' },
{ name: '株式会社GHI', industry: 'SaaS', issue: '解約率の高止まり' },
];
for (const company of companies) {
// Claude Codeでテンプレートベースの資料を生成
// Puppeteerで各HTMLをPDF変換
await htmlToPdf(
`./output/${company.name}_proposal.html`,
`./output/${company.name}_proposal.pdf`
);
}
この仕組みにより、10社分の提案書でも数分で一括生成が完了します。
HTMLスライドによる資料生成は強力な手法ですが、すべての場面でPowerPointやGoogle Slidesを置き換えるものではありません。
ポイント: 「量産する定型資料はHTML+PDF、一点物のクリエイティブな資料はPowerPoint/Google Slides」という使い分けが、実務では最も効率的です。
PDF変換時にフォントが正しく表示されるためには、実行環境にフォントがインストールされている必要があります。日本語フォントは、Google FontsのNoto Sans JPをCSSで読み込む方法が最も確実です。ローカル環境でのみ利用可能なフォントを指定すると、CI/CD環境やチームメンバーの環境で文字化けする可能性があります。
Claude Codeが生成するHTMLは完全に動作するコードなので、自分でHTMLを書く必要はありません。「提案書を作って」と日本語で指示するだけでスライドが生成されます。微調整も「3ページ目の背景色を変えて」のように自然言語で指示できます。ただし、CSSの基本的な概念(フォントサイズ、色、余白など)を理解していると、より的確な指示が出せます。
はい、通常のHTMLと同じ方法で画像を埋め込めます。ローカルファイルのパス指定(<img src="./logo.png">)、またはURLでの読み込みが可能です。PDF変換時にも画像は正しくレンダリングされます。ただし、外部URLの画像を使う場合は、PDF変換時にネットワークアクセスが必要になる点に注意してください。
機能面ではほぼ同等です。すでにプロジェクトでどちらかを使っている場合は、そちらに統一するのが合理的です。新規導入の場合は、Playwrightのほうがマルチブラウザ対応(Chromium, Firefox, WebKit)や自動待機機能が充実しています。PDF変換だけならPuppeteerのほうが軽量です。
ヘッドレスブラウザでレンダリングするため、画面表示とほぼ同一の品質でPDFが出力されます。printBackground: trueを指定すれば背景色やグラデーションも再現されます。テキストはPDF内でコピー可能なベクターテキストとして埋め込まれるため、PowerPointからPDFに変換した場合と遜色ありません。
はい。waitUntil: 'networkidle0'(Puppeteer)またはwaitUntil: 'networkidle'(Playwright)を指定することで、Chart.jsの描画が完了してからPDF変換が実行されます。JavaScriptで動的に描画されるグラフも、PDF上では静止画として正確にレンダリングされます。
Claude CodeによるHTMLスライド→PDF量産ワークフローの要点をまとめます。
page.pdf() APIでA4横向き・余白・ページ番号まで制御でき、印刷用資料と画面表示の両方で品質を担保できるまずは毎月繰り返し作っている資料を1つ選んでHTMLテンプレート化することから始めてください。少数精鋭のチームでも、AIの力を借りれば大量の資料を高品質で安定的に量産できます。
株式会社StartLinkは、事業推進に関わる「販売促進」「DXによる業務効率化(ERP/CRM/SFA/MAの導入)」などのご相談を受け付けております。 サービスのプランについてのご相談/お見積もり依頼や、ノウハウのお問い合わせについては、無料のお問い合わせページより、お気軽にご連絡くださいませ。