PyMuPDF4LLM#

PyMuPDF4LLM は、Python 向けの最速の PDF 抽出ツールである PyMuPDF に基づいています。

This documentation explains how to use the PyMuPDF4LLM package as well as providing links to other related RAG & LLM resources for PyMuPDF.

Features#

  • Support for multi-column pages

  • Support for image and vector graphics extraction (and inclusion of references in the MD text)

  • Support for page chunking output.

  • Direct support for output as LlamaIndex Documents.

Document support#

PyMuPDF4LLM supports the following file types for text extraction:

PDF

DOCX

XLSX

PPTX

HWPX

_images/icon-pdf.svg _images/icon-docx.svg _images/icon-xlsx.svg _images/icon-pptx.svg _images/icon-hangul.svg

XPS

EPUB

MOBI

FB2

CBZ

_images/icon-xps.svg _images/icon-epub.svg _images/icon-mobi.svg _images/icon-fb2.svg _images/icon-cbz.svg
  • This package converts the pages of a file to text in Markdown format using PyMuPDF.

  • 標準のテキストやテーブルが検出され、適切な読み取り順序で取り込まれ、その後一緒に GitHub 互換の Markdown テキストに変換されます。

  • ヘッダー行はフォントサイズで識別され、適切に1つまたは複数の#タグで接頭語が付けられます。

  • 太字、斜体、等幅テキスト、およびコードブロックが検出され、それに応じて書式が付けられます。順序付けられたリストと順不同リストにも同様のことが適用されます。

  • デフォルトでは、すべての文書ページが処理されます。必要に応じて、0 から始まるページ番号のリストを指定してサブセットのページを指定できます。

Installation#

パッケージを pip を使用してインストールするには、次のコマンドを使用します:

pip install pymupdf4llm

LLM / RAG アプリケーションでの使用#

PyMuPDF4LLM is aimed to make it easier to extract PDF content in the format you need for LLM & RAG environments. It supports Markdown extraction as well as LlamaIndex document output.

Extracting a file as Markdown#

Markdown 形式でドキュメントの内容を取得するには、単にパッケージをインストールし、それから数行の Python コードを使用して結果を取得します。

Python スクリプトでは:

import pymupdf4llm
md_text = pymupdf4llm.to_markdown("input.pdf")

注釈

上記のファイル名文字列の代わりに、 PyMuPDFの Document を指定することもできます。2番目のパラメータは、0 から始まるページ番号のリストであり、例えば [0,1] はドキュメントの最初のページと2番目のページを選択します。

Markdown ファイルを保存したい場合、例えばUTF8でエンコードされたファイルとして保存する場合は、次のようにします。

import pathlib
pathlib.Path("output.md").write_bytes(md_text.encode())

Extracting a file as a LlamaIndex document#

PyMuPDF4LLM supports direct conversion to a LLamaIndex document. A document is first converted into Markdown format and then a LlamaIndex document is returned as follows:

import pymupdf4llm
llama_reader = pymupdf4llm.LlamaMarkdownReader()
llama_docs = llama_reader.load_data("input.pdf")

API#

See API.

追加リソース#

サンプルコード#

ブログ#



This software is provided AS-IS with no warranty, either express or implied. This software is distributed under license and may not be copied, modified or distributed except as expressly authorized under the terms of that license. Refer to licensing information at artifex.com or contact Artifex Software Inc., 39 Mesa Street, Suite 108A, San Francisco CA 94129, United States for further information.