MarkItDownでファイル形式を変換する
MarkItDownを使うとファイルの形式を変換することができます。公式ページには以下の記載があります。
MarkItDown currently supports the conversion from:
- 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」とは言い難いように思いました。
インプット¶
アウトプット¶
政府実行計画の見直しについて(令和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.