ホームページ >バックエンド開発 >Python チュートリアル >PyMuPDFM を使用して PDF を Markdown に変換する方法とその評価
PyMuPDF4LLM は、PDF を Markdown 形式に変換するために設計されたライブラリです。ここでは、このライブラリをテストした私の経験を共有します。
次のコマンドを使用してライブラリをインストールすることから始めます:
pip install pymupdf4llm
基本的な使用法は非常に簡単で、PDF を Markdown に変換するのに必要なコードは 3 行だけです。
import pymupdf4llm md_text = pymupdf4llm.to_markdown("input.pdf") print(md_text)
引数を指定してコンテンツの抽出方法を調整できます。
デフォルトでは、PDF 全体が 1 つのテキスト出力に変換されます。ただし、page_chunks=True を指定すると、ページごとにテキストを抽出できます。
md_text = pymupdf4llm.to_markdown("input.pdf", page_chunks=True)
画像をファイルとして抽出するには、write_images=True オプションを使用します。
md_text = pymupdf4llm.to_markdown("input.pdf", write_images=True)
base64 エンコードを使用してマークダウンに画像を直接埋め込むこともできます。
md_text = pymupdf4llm.to_markdown("input.pdf", embed_images=True)
テストには、異なる Markdown 要素を含むさまざまな PDF が使用されました。
ヘッダーは Markdown 形式に正しく変換されます。以下は結果の一部です:
# Sample Markdown Guide This is a sample markdown file that includes various features for quick reference. ## 1. Headers ... ## 3. Lists
太字と斜体の書式も適切に変換されます:
**Bold: **Bold Text**** _Italic: *Italic Text*_ **_Bold and Italic: ***Bold and Italic***_**
最初のレベルの順序付きリストは問題なく変換されますが、入れ子になったリストと順序なしリストは正確に変換されません。
## 3. Lists ### Unordered List Item 1 Item 2 Sub-item 1 Sub-item 2 ### Ordered List 1. First item 2. Second item 1. Sub-item A 2. Sub-item B
リンクの URL は抽出されますが、リンクを含む行全体がハイパーリンクになり、元の形式から逸脱します。
## 4. Links and Images [You can add links using [Link Text](URL).](https://www.example.com/)
画像はデフォルトでは抽出されませんが、write_images=True を使用してローカルに保存できます。
md_text = pymupdf4llm.to_markdown("input.pdf", write_images=True)
保存された画像は、次のようにマークダウンで参照されます。
<p>### Image Example</p> <p>![](input.pdf-1-0.png)</p>
垂直方向の境界線のない単純なテーブルは正確に変換されません (おそらく、列の境界があいまいなため、テーブルがプレーン テキストとして扱われるためです)。
<p>## 5. Tables</p> <p>**Column 1** **Column 2** **Column 3**</p> <p>Row 1 Data A Data B</p> <p>Row 2 Data C Data D</p>
コードブロックは正しく変換されますが、言語仕様 (Python など) は保持されません。インラインコード変換にも問題があります。
<p>## 6. Code</p> <p>### Inline Code</p> <p>Use backticks for inline code: print("Hello, world!")</p> <p>### Code Block</p> <p>Use triple backticks for code blocks:</p> <p>```<br> def greet(name):<br> return f"Hello, {name}!"<br> print(greet("Markdown"))<br> ```</p>
複数行のテキストの場合、改行は元の PDF に表示されるとおりに保持されます。
<p>Markdown is a lightweight and versatile markup language favored by developers, writers, and bloggers alike</p> <p>due to its simplicity in formatting text, enabling users to create readable and well-structured documents—</p> <p>whether for documentation, blog posts, or articles—without the complexity of HTML, while also offering the</p> <p>ability to convert content seamlessly into other formats like HTML, PDF, and even slideshows, making it an</p> <p>ideal choice for projects that require both clarity and flexibility in presentation.</p>
リストやリンクを正確に変換するのは困難ですが、PyMuPDF4LLM は PDF を Markdown に変換するのに便利なツールです。外部言語モデルを必要とせずにローカルで動作できるため、インターネット アクセスが利用できない環境に適しています。
以上がPyMuPDFM を使用して PDF を Markdown に変換する方法とその評価の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。