如何使用 PyMuPDFM 將 PDF 轉換為 Markdown 及其評估

Linda Hamilton
發布: 2024-10-07 18:12:31
原創
108 人瀏覽過

PyMuPDF4LLM 是一個設計用來將 PDF 轉換為 Markdown 格式的函式庫。在這裡,我將分享我測試這個庫的經驗。

安裝

先使用下列指令安裝函式庫:


pip install pymupdf4llm


登入後複製

用法

基本用法非常簡單,只需三行程式碼即可將 PDF 轉換為 Markdown:


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


登入後複製

您可以指定參數來調整內容的擷取方式。

按頁提取文本

預設情況下,整個 PDF 會轉換為單一文字輸出。但是,您可以透過指定 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編碼直接在Markdown嵌入圖片:


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)


登入後複製
登入後複製

然後在 Markdown 中引用已儲存的圖片,如下所示:


<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中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!