ホームページ  >  記事  >  バックエンド開発  >  PyMuPDFM を使用して PDF を Markdown に変換する方法とその評価

PyMuPDFM を使用して PDF を Markdown に変換する方法とその評価

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-07 18:12:31111ブラウズ

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 が使用されました。

How to Convert PDFs to Markdown Using PyMuPDFM and Its Evaluation

ヘッダー変換

ヘッダーは 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***_**


リスト変換

最初のレベルの順序付きリストは問題なく変換されますが、入れ子になったリストと順序なしリストは正確に変換されません。

How to Convert PDFs to Markdown Using PyMuPDFM and Its Evaluation


## 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 は抽出されますが、リンクを含む行全体がハイパーリンクになり、元の形式から逸脱します。

How to Convert PDFs to Markdown Using PyMuPDFM and Its Evaluation


## 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>




テーブル変換

垂直方向の境界線のない単純なテーブルは正確に変換されません (おそらく、列の境界があいまいなため、テーブルがプレーン テキストとして扱われるためです)。

How to Convert PDFs to Markdown Using PyMuPDFM and Its Evaluation


<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 など) は保持されません。インラインコード変換にも問題があります。

How to Convert PDFs to Markdown Using PyMuPDFM and Its Evaluation


<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 に表示されるとおりに保持されます。

How to Convert PDFs to Markdown Using PyMuPDFM and Its Evaluation


<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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。