WordやPowerPoint、PDFの内容を Markdownにしたい 場面は意外と多いものです。ブログの下書きに流用したい、READMEにまとめたい、あるいは ChatGPTやClaudeにドキュメントを渡す前処理 として整形したい——。
そこで、Microsoft製のファイル変換ライブラリ MarkItDown を使い、ブラウザにファイルをドラッグ&ドロップするだけでMarkdownに変換できるWebツールを作りました。
pptx/docx/pdf→Markdown 変換ツール
MarkItDownとは
MarkItDown は、Microsoftが公開しているオープンソースのファイル変換ライブラリです。PowerPoint・Word・Excel・PDF・HTMLなど、さまざまな形式のファイルを Markdownに変換 してくれます。
大きな特徴は、見出し・表・リスト・リンクといった 文書構造をできるだけ保ったままMarkdown化 してくれること。単なるテキスト抽出ではなく、構造付きで取り出せるので、そのままドキュメントやLLMの入力として使いやすいのが魅力です。
作ったツールの機能
| 機能 | 説明 |
|---|---|
| 多形式対応 | PowerPoint・Word・Excel・PDF・HTML・CSV・JSONなどをMarkdownに変換 |
| 構造保持 | 見出し・表・リスト・リンクなどの文書構造をMarkdownで再現 |
| ドラッグ&ドロップ | ファイルをドロップするだけの簡単操作 |
| 自動コピー | 変換結果は自動でクリップボードにコピー |
対応ファイル形式
- Office系なPowerPoint(.pptx)、Word(.docx)、Excel(.xlsx / .xls)
- ドキュメントなPDF(.pdf)、EPUB(.epub)
- Web/テキストなHTML(.html)、Markdown(.md)、テキスト(.txt)
- データ形式なCSV(.csv)、JSON(.json)、XML(.xml)
- その他なZIP(.zip、中身を展開して変換)
最大ファイルサイズは50MBです。なお、MarkItDownの仕様上、画像のOCRや音声の文字起こしには対応していません。
活用例
- LLMへの入力前処理な資料をMarkdownに変換してChatGPTやClaudeに貼り付け。構造付きなのでAIが読みやすい
- ドキュメントの統一なバラバラの形式の社内資料をMarkdownに揃える
- ブログ執筆なWord原稿をMarkdownに変換してそのまま投稿
- 技術文書作成なプレゼン資料からREADMEやWikiのたたき台を作る
- 中身の素早い確認なExcelやCSVをテキストベースでざっと把握
実装のポイント
構成は「FastAPI + MarkItDown」で、フロントエンドはWordPress固定ページに置いたHTML/JavaScriptです。
バックエンド(FastAPI)
変換の中核は驚くほどシンプルで、MarkItDownに一時ファイルを渡すだけです。
from fastapi import FastAPI, File, UploadFile
from markitdown import MarkItDown
app = FastAPI()
md = MarkItDown(enable_plugins=False)
@app.post("/convert")
async def convert_file(file: UploadFile = File(...)):
content = await file.read()
# 一時ファイルに保存して変換
result = md.convert(temp_file_path)
return {"markdown": result.text_content}フロントエンド(JavaScript)
ドロップされたファイルを FormData でPOSTし、返ってきたMarkdownをテキストエリアに表示するだけです。
const formData = new FormData();
formData.append('file', file);
const res = await fetch('/api/markitdown/convert', {
method: 'POST',
body: formData
});
const data = await res.json();
decodeArea.value = data.markdown;サーバー構成について
このツールは、カラフルボックス(共用サーバー)上で FastAPIをuvicornで動かし、.htaccess のプロキシ経由で公開 しています。共用サーバーでASGIアプリを安定して動かすには少しコツが要り、実際に404・500・503とハマりました。
その デプロイ手順とハマりどころの全記録 は、別記事に詳しくまとめています。
まとめ
MarkItDownを使えば、面倒な「ドキュメント→Markdown」変換を、ブラウザにドロップするだけで完結できます。特に LLMに資料を渡すときの前処理 として便利です。
構造を保ったままMarkdown化してくれるので、変換後の手直しも最小限で済みます。よかったら実際に試してみてください。
pptx/docx/pdf→Markdown 変換ツール
関連記事
レンタルサーバー「カラフルボックス」で Python FastAPIをデプロイし、Webアプリを公開する方法
WordPressサイトにレンタルサーバー『カラフルボックス』をおすすめする理由【2026年】

