Skip to content

MarkItDownでファイル形式を変換する

MarkItDownを使うとファイルの形式を変換することができます。公式ページには以下の記載があります。

MarkItDown currently supports the conversion from:

  • PDF
  • PowerPoint
  • Word
  • Excel
  • Images (EXIF metadata and OCR)
  • Audio (EXIF metadata and speech transcription)
  • HTML
  • Text-based formats (CSV, JSON, XML)
  • ZIP files (iterates over contents)
  • Youtube URLs
  • EPubs
  • ... and more!

ただ、実際に試してみると現状では「意図した通りに動作しない」ことが多いように思いました。とりあえず、今回試した内容をメモしておきます。

検証環境

対象 バージョン
macOS 15.5
Python 3.13.5
MarkItDown 0.1.2

インストール

uv pip install "markitdown[all]"

ファイル形式を変換する

今回はテストに政府実行計画の見直しについてというPDFを使い、これをMarkdownへ変換してみました。まず、このPDFをダウンロードします。

curl -LO https://www.env.go.jp/content/000301173.pdf

ファイル形式を変換してみます。

markitdown 000301173.pdf -o 000301173.pdf

結果は以下の通りです。アウトプットはテキスト形式になっているものの、ほぼ平文になっており、「Markdown」とは言い難いように思いました。

インプット

image

アウトプット

政府実行計画の見直しについて(令和7年2月18日閣議決定)

参考資料1

◼ 政府実行計画:政府の事務・事業に関する温室効果ガスの排出削減計画。(地球温暖化対策推進法第20条)
◼ 今 回 、2035 年 度 に65% 削 減 ・ 2040 年 度に 79%削 減 (そ れ ぞ れ 2013 年度 比 )の 新 たな 目 標 を 設定 し 、
目標達成に向けて取組を強化。[現行計画の2030年度50%削減(2013年度比)の直線的な経路として設定]

◼ 毎年度、中央環境審議会において意見を聴きつつフォローアップを行い、着実にPDCAを実施。

再生可能エネルギーの最大限の活用・建築物の建築等に当たっての取組

太陽光発電 ✓ 2030年度までに設置可能な政府保有の建築物(敷地含む)の約50%以上に太陽光発電設備を設置、

2040年度までに100%設置を目指す。

✓ ペロブスカイト太陽電池を率先導入する。また、社会実装の状況(生産体制・施工方法の確立等)を踏まえて

導入目標を検討する。

建築物の建築 ✓ 2030年度までに新築建築物の平均でZEB ready相当となることを目指し、2030年度以降には更に高い省エ

ネ性能を目指す。また、既存建築物について省エネ対策を徹底する。

✓ 建築物の資材製造から解体(廃棄段階も含む。)に至るまでのライフサイクル全体を通じた温室効果ガスの排
※  ZEB Ready:50%以上の省エネを図った建築物

出削減に努める。

財やサービスの購入・使用に当たっての取組

公用車/
LED

✓ 2030年度までにストックで100%の導入を目指す。

※ 電動車は代替不可能なものを除く

その他の温室効果ガス排出削減等への配慮

✓ 自然冷媒機器の率先導入等、フロン類の排出抑制

に係る取組を強化

電力調達 ✓ 2030年度までに各府省庁での調達電力の60%以

✓ Scope3排出量へ配慮した取組を進め、その排出

上を再エネ電力とする。以降、2040年度には調達電
力の80%以上を脱炭素電源由来の電力とするもの
とし、排出係数の低減に継続的に取り組む。

GX製品

✓ 市場で選ばれる環境整備のため、率先調達する。

※ GX製品:製品単位の削減実績量や削減貢献量がより大きいもの、

CFP(カーボンフットプリント)がより小さいもの

量の削減に努める。

✓ 職員にデコ活アクションの実践など、脱炭素型ライフ

スタイルへの転換に寄与する取組を促す。
※ Scope3排出量: 直接排出量(Scope1)、エネルギー起源
間接排出量(Scope2)以外のサプライチェーンにおける排出量

参考

ヘルプ

% markitdown --help
usage: SYNTAX:

    markitdown <OPTIONAL: FILENAME>
    If FILENAME is empty, markitdown reads from stdin.

EXAMPLE:

    markitdown example.pdf

    OR

    cat example.pdf | markitdown

    OR

    markitdown < example.pdf

    OR to save to a file use

    markitdown example.pdf -o example.md

    OR

    markitdown example.pdf > example.md

Convert various file formats to markdown.

positional arguments:
  filename

options:
  -h, --help            show this help message and exit
  -v, --version         show the version number and exit
  -o, --output OUTPUT   Output file name. If not provided, output is written to stdout.
  -x, --extension EXTENSION
                        Provide a hint about the file extension (e.g., when reading from stdin).
  -m, --mime-type MIME_TYPE
                        Provide a hint about the file's MIME type.
  -c, --charset CHARSET
                        Provide a hint about the file's charset (e.g, UTF-8).
  -d, --use-docintel    Use Document Intelligence to extract text instead of offline conversion. Requires a valid Document
                        Intelligence Endpoint.
  -e, --endpoint ENDPOINT
                        Document Intelligence Endpoint. Required if using Document Intelligence.
  -p, --use-plugins     Use 3rd-party plugins to convert files. Use --list-plugins to see installed plugins.
  --list-plugins        List installed 3rd-party plugins. Plugins are loaded when using the -p or --use-plugin option.
  --keep-data-uris      Keep data URIs (like base64-encoded images) in the output. By default, data URIs are truncated.