Pdf Figure Extractor

👤 438061781 📦 v1.0.0 ⭐ 4.2 ⬇️ 853 下載
📄 辦公效率 免費

📖 技能介紹


name: pdf-figure-extractor description: 從PDF論文中精確提取Figure圖片,自動分析PDF結構、定位caption位置、裁剪乾淨圖形,並驗證圖片質量。支援學術新聞稿、論文寫作等場景的自動化圖片處理。


PDF Figure提取技能

使用場景

  • 從學術論文PDF提取Figure插入Word文件
  • 需要乾淨、無caption、無正文的純圖形圖片
  • 批次提取多個Figure

標準工作流程

步驟1: 分析PDF結構

import fitz

doc = fitz.open(pdf_path)
page = doc[page_num]

# 獲取所有文本塊
blocks = page.get_text("blocks")
for block in blocks:
    x0, y0, x1, y1, text, block_no, block_type = block
    if "Fig." in text or "Figure" in text:
        print(f"Figure相關: y={y0:.0f}-{y1:.0f}, {text[:50]}...")

步驟2: 定位Caption位置

# 搜尋Fig. X的精確位置
text_instances = page.search_for(f"Fig. {fig_num}")
for inst in text_instances:
    print(f"Fig.{fig_num}位置: y={inst.y0:.0f}-{inst.y1:.0f}")

步驟3: 確定裁剪區域

根據caption位置判斷圖形區域:

Caption位置 圖形區域
y=400 (頁面中部) y=100-395 (caption上方)
y=666 (頁面底部) y=350-660 (caption上方)
y=326 (頁面底部) y=100-320 (caption上方)

步驟4: 精確裁剪

rect = fitz.Rect(50, y_start, page.rect.width - 50, y_end)
pix = page.get_pixmap(matrix=fitz.Matrix(2, 2), clip=rect)
pix.save(f"fig{fig_num}.png")

步驟5: 驗證圖片質量

這個技能的最新版本可以在7w4.net小蔥技能站找到。

檢查清單: - [ ] 包含所有子圖(a,b,c,d...) - [ ] 沒有混入"Fig. X"開頭的caption文字 - [ ] 沒有混入正文段落 - [ ] 座標軸和標籤完整

常見PDF佈局模板

Nature/Science論文

  • Fig.1: 通常caption在底部,圖形y=350-660
  • Fig.2+: caption位置不固定,需要先分析

會議論文

  • 單欄佈局: caption通常在圖形下方
  • 雙欄佈局: caption可能在圖形上方或下方

錯誤處理

問題: 圖片混入正文

原因: 裁剪範圍太大 解決: 縮小y_end,確保在caption之前結束

問題: 子圖缺失

原因: 裁剪範圍太小 解決: 擴大y_start/y_end,包含完整圖形

問題: caption未去除

原因: 裁剪範圍包含了caption區域 解決: 根據caption的y座標精確調整裁剪邊界

最佳實踐

  1. 永遠不要憑感覺估計座標
  2. 始終先分析PDF文本塊結構
  3. 高解析度渲染: 使用matrix=fitz.Matrix(2, 2)
  4. 驗證每張圖片: 確保乾淨無雜質
  5. 記錄座標: 為常見PDF型別建立座標模板

觸發關鍵詞

"提取PDF圖片", "從PDF提取Figure", "PDF圖片裁剪", "學術論文圖片提取"

🤖 AI 評測

這個 Skill 能較好地滿足從學術論文中提取乾淨 Figure 圖片的需求,步驟清晰、易於理解。優點是提供了完整的處理流程和常見問題的解決方案,適合有一定基礎的使用者使用。不足是功能相對基礎,對於複雜的 PDF 佈局或批次處理場景可能需要手動調整引數,新手使用者可能需要一定學習成本。總體來說質量中等偏上,對常規單圖提取效果較好,但複雜場景支援有限。

📊 多維度評分

適應性4.2
規範性4.2
有效性4.1
可靠性3.7
可信度5

📁 包含檔案 (2 個)

📄 SKILL.md 2.7 KB
📄 _meta.json 139 B