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

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

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

一、PyMuPDF 核心功能

文本提取

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

文檔渲染

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

文檔操作

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

高級(jí)特性

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

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

1. 打開(kāi)文檔 & 提取文本

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

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

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

# 按區(qū)塊提取(保留位置信息)
blocks = page.get_text("blocks")
for block in blocks:
    print(block[4])  # 文本內(nèi)容(block格式: (x0, y0, x1, y1, text))

2. 渲染頁(yè)面為圖像

# 渲染為 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

# 添加文本到新頁(yè)面
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)說(shuō)明

1. 性能優(yōu)勢(shì)

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

2. 適用場(chǎng)景

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

3. 注意事項(xiàng)

  1. 安裝依賴(lài):無(wú)需額外依賴(lài)(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)用需購(gòu)買(mǎi)許可證)

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

相關(guān)文章

最新評(píng)論

陵水| 宁津县| 洛川县| 电白县| 麻阳| 迁安市| 大余县| 怀柔区| 荆州市| 阿尔山市| 襄樊市| 翼城县| 纳雍县| 宜良县| 东平县| 舒兰市| 台安县| 灌云县| 铜陵市| 邹城市| 抚州市| 怀柔区| 林州市| 延津县| 巴彦淖尔市| 红河县| 洪江市| 云安县| 扬州市| 巴塘县| 刚察县| 旺苍县| 大同市| 仁寿县| 普陀区| 淮北市| 榆树市| 云和县| 潜山县| 石景山区| 盖州市|