WordやPowerPoint、PDFの内容を Markdownにしたい 場面は意外と多いものです。ブログの下書きに流用したい、READMEにまとめたい、あるいは ChatGPTやClaudeにドキュメントを渡す前処理 として整形したい——。

そこで、Microsoft製のファイル変換ライブラリ MarkItDown を使い、ブラウザにファイルをドラッグ&ドロップするだけでMarkdownに変換できるWebツールを作りました。

pptx/docx/pdf→Markdown 変換ツール pptx・docx・xlsx・pdf・html・csvなどのファイルをドラッグ&ドロップするだけでMarkdown形式に変換。Microsoft MarkItDownを使用したオンライン変換ツール。  続きを読む

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 変換ツール pptx・docx・xlsx・pdf・html・csvなどのファイルをドラッグ&ドロップするだけでMarkdown形式に変換。Microsoft MarkItDownを使用したオンライン変換ツール。  続きを読む

関連記事

レンタルサーバー「カラフルボックス」で Python FastAPIをデプロイし、Webアプリを公開する方法 共用レンタルサーバー「カラフルボックス(ColorfulBox)」で、Python FastAPIをデプロイしてWebアプリを公開、安定して動かす方法を解説。cPanelのSetup Python App、uvicornの起動、Passengerではなくcro...  続きを読む WordPressサイトにレンタルサーバー『カラフルボックス』をおすすめする理由【2026年】 セキュリティ・コスパ・アップロード上限・Python対応まで、カラフルボックスをWordPressサイトにおすすめする5つの理由を解説。エックスサーバー・ConoHa WING・さくら・ロリポップとの比較つき。  続きを読む

参考リンク