最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python通過PyMuPDF高效處理PDF文檔的操作方法

 更新時間:2025年11月18日 09:57:39   作者:Asia-Lee  
PyMuPDF(又稱 fitz)是一個功能強(qiáng)大的Python庫,用于處理PDF、XPS、EPUB、MOBI等文檔格式,它基于MuPDF(輕量級 PDF 渲染引擎),提供高效的文本提取、渲染、編輯和文檔分析功能,所以本文給大家介紹了Python通過PyMuPDF高效處理PDF文檔的操作方法

一、PyMuPDF 核心功能

文本提取

  • 提取精確文本(保留布局信息)
  • 支持按頁面、區(qū)塊、單詞或行提取
  • 處理加密文檔(需提供密碼)

文檔渲染

  • 將頁面轉(zhuǎn)為圖像(PNG/JPEG)
  • 高分辨率輸出(支持縮放和旋轉(zhuǎn))

文檔操作

  • 合并/拆分 PDF
  • 旋轉(zhuǎn)、刪除、插入頁面
  • 添加文本、圖像、形狀(矩形/圓形等)

高級特性

  • 提取元數(shù)據(jù)、書簽、鏈接、注釋
  • 搜索文本(支持正則表達(dá)式)
  • 處理 PDF 表單(讀取/填寫字段)
  • 安裝方法
pip install PyMuPDF

二、關(guān)鍵代碼示例

1. 打開文檔 & 提取文本

import fitz  # PyMuPDF 的導(dǎo)入名稱

# 打開 PDF
doc = fitz.open("document.pdf")

# 提取第一頁文本
page = doc.load_page(0)
text = page.get_text()
print(text)

# 按區(qū)塊提?。ūA粑恢眯畔ⅲ?
blocks = page.get_text("blocks")
for block in blocks:
    print(block[4])  # 文本內(nèi)容(block格式: (x0, y0, x1, y1, text))

2. 渲染頁面為圖像

# 渲染為 PNG
pix = page.get_pixmap(matrix=fitz.Matrix(2, 2))  # 縮放2倍
pix.save("page0.png")

# 指定 DPI (300 dpi)
dpi = 300
mat = fitz.Matrix(dpi / 72, dpi / 72)  # 72是默認(rèn)DPI
pix = page.get_pixmap(matrix=mat)

3. 編輯 PDF

# 添加文本到新頁面
new_page = doc.new_page(width=400, height=200)
new_page.insert_text((100, 50), "Hello PyMuPDF!", fontsize=24)

# 繪制紅色矩形
rect = fitz.Rect(50, 70, 150, 120)
new_page.draw_rect(rect, color=(1, 0, 0), width=2)

# 保存修改
doc.save("modified.pdf")

4. 合并 PDF

doc1 = fitz.open("doc1.pdf")
doc2 = fitz.open("doc2.pdf")

# 將 doc2 插入到 doc1 末尾
doc1.insert_pdf(doc2)
doc1.save("merged.pdf")

5. 提取圖像

for img_index, img in enumerate(page.get_images(full=True)):
    xref = img[0]  # 圖像引用 ID
    base_image = doc.extract_image(xref)
    image_bytes = base_image["image"]
    with open(f"image_{img_index}.png", "wb") as f:
        f.write(image_bytes)

6. 搜索文本

# 搜索所有 "important" 出現(xiàn)的位置
areas = page.search_for("important")
for rect in areas:
    page.add_highlight_annot(rect)  # 添加高亮注釋

三、相關(guān)說明

1. 性能優(yōu)勢

  • 速度極快:比 PyPDF2/pdfplumber 快 5-10 倍
  • 內(nèi)存效率:流式處理大文件(>1GB)
  • 精確布局:保留文本位置、字體、圖像坐標(biāo)

2. 適用場景

  • 批量提取 PDF 文本/圖像
  • 自動化生成報告(添加水印/頁眉頁腳)
  • 構(gòu)建文檔搜索引擎
  • 轉(zhuǎn)換 PDF 為圖像/文本文件
  • 處理掃描文檔(OCR 前預(yù)處理)

3. 注意事項

  1. 安裝依賴:無需額外依賴(Windows/macOS/Linux 均有預(yù)編譯包)
  2. 加密文檔:使用 doc.authenticate(password) 處理密碼
  3. 坐標(biāo)系:原點(diǎn)在左上角(與傳統(tǒng) PDF 坐標(biāo)一致)
  4. 商業(yè)許可:AGPL 協(xié)議(商業(yè)應(yīng)用需購買許可證)

以上就是Python通過PyMuPDF高效處理PDF文檔的操作方法的詳細(xì)內(nèi)容,更多關(guān)于Python PyMuPDF處理PDF文檔的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評論

乌兰察布市| 中江县| 娱乐| 安丘市| 临海市| 安宁市| 绵阳市| 陆河县| 深水埗区| 武穴市| 蓝山县| 张家界市| 买车| 建平县| 无为县| 惠安县| 湘乡市| 四会市| 江西省| 济源市| 余姚市| 徐闻县| 莲花县| 乌拉特中旗| 新余市| 抚顺县| 阿克陶县| 康保县| 上思县| 丹阳市| 哈巴河县| 容城县| 屏东市| 沙洋县| 保德县| 开平市| 南宫市| 富平县| 新干县| 榆中县| 孟州市|