PDF to Markdown(Obsidian対応)コンバータ
概要
PDF to Markdown(pdf_to_md)は、PDFドキュメントをObsidianやその他のMarkdown対応ノートアプリ向けに整形して変換する、シングルファイルのGUIアプリケーションです。自動見出し検出やヘッダ/フッタ除去、孤立したテキスト断片の結合、画像の抽出・エクスポートといった機能を備え、ページごとのエラー回復や永続的な設定保存により安定したワークフローを提供します。マルチプラットフォーム(Windows/macOS/Linux)で動作し、Python 3.7+で動作する軽量ツールとして設計されています。
リポジトリの統計情報
- スター数: 12
- フォーク数: 1
- ウォッチャー数: 12
- コミット数: 14
- ファイル数: 6
- メインの言語: Python
主な特徴
- 自動見出し検出:フォントサイズや配置に基づいて見出しを推定しMarkdownの見出しに変換。
- ヘッダ/フッタ自動削除:ページ上部/下部の繰り返し要素を自動で除去してノイズ低減。
- 断片マージと画像抽出:孤立したテキスト断片を結合し、図表や画像を個別ファイルとして出力。
- GUIプレビューと永続設定:変換結果のプレビュー、設定の保存、ページ単位でのエラー回復機能。
技術的なポイント
pdf_to_mdは「シングルファイルGUI」という設計方針に基づき、依存関係やUIを1つのPythonスクリプトでまとめています。PDF解析はテキストの位置情報(座標・フォントサイズ・スタイル)を利用して構造化を試みる点が特徴で、単純なテキスト抽出よりも文書の論理構造を再現しやすくしています。見出しの検出はフォントサイズや太字、行間や左マージンの変化をヒューリスティックに評価して行い、複数ページに渡る見出しや目次のパターンにも対応可能です。
ヘッダとフッタの自動削除は、各ページの上端/下端に繰り返し出現する要素を統計的に特定して除去します。これによりページ番号や出版情報などの不要なノイズを省けるため、Markdownの可読性が向上します。孤立テキスト断片のマージは、行継続や段落分割の誤検出を補正するため、行間や左右の揃いを参照して行われます。画像の取り扱いは、PDF内の図を抽出して個別の画像ファイルとして保存し、Markdown内に参照リンクを挿入する形で行います。
GUIは軽量なフロントエンドを提供し、変換前のプレビューやページ単位での設定調整、問題ページのリトライをサポートします。設定は永続化されるため、一度最適化したパラメータを次回以降も利用できます。設計上はObsidian向けの最適化(画像フォルダやリンク形式)を想定しており、Markdownエクスポート後の手作業を最小化する工夫が施されています。Python 3.7+対応でクロスプラットフォームに動作するため、研究ノートや資料整理を行うユーザーに適したツールです。
プロジェクトの構成
主要なファイルとディレクトリ:
- .gitignore: file
- LICENSE: file
- README.md: file
- doc: dir
- pdf_to_md.py: file
…他 1 ファイル
まとめ
軽量で実用的なPDF→Markdown変換ツール。Obsidianユーザーに特に有用。
リポジトリ情報:
- 名前: pdf_to_md
- 説明: Smart PDF to Markdown converter with intelligent heading detection, automatic header/footer removal, orphan fragment merging, and image export. Features a user-friendly GUI with preview mode, persistent settings, and per-page error recovery. Optimized for Obsidian and other Markdown-based note-taking workflows.
- スター数: 12
- 言語: Python
- URL: https://github.com/M1ck4/pdf_to_md
- オーナー: M1ck4
- アバター: https://avatars.githubusercontent.com/u/24867776?v=4
READMEの抜粋:
PDF to Markdown Converter (Obsidian-Ready)
A powerful, single-file GUI application that converts PDFs to clean, well-formatted Markdown optimized for Obsidian and other note-taking apps.
[![Download EXE](https://…