pdf

GitHub

处理PDF文件的技能,涵盖文本/表格提取、合并拆分、表单填写及OCR。提供基于任务的库选择指南(如pdfplumber、pypdf)及Python代码示例,解决乱码、内存溢出等常见问题。

Trigger Scenarios

从PDF中提取文本或表格 合并或拆分PDF文件 填写PDF表单 添加水印或注释 将PDF转换为其他格式 在PDF中搜索内容

Install

npx skills add FareedKhan-dev/claude-code-from-scratch --skill pdf -g -y
More Options

Use without installing

npx skills use FareedKhan-dev/claude-code-from-scratch@pdf

指定 Agent (Claude Code)

npx skills add FareedKhan-dev/claude-code-from-scratch --skill pdf -a claude-code -g -y

安装 repo 全部 skill

npx skills add FareedKhan-dev/claude-code-from-scratch --all -g -y

预览 repo 内 skill

npx skills add FareedKhan-dev/claude-code-from-scratch --list

SKILL.md

Frontmatter
{
    "name": "pdf",
    "description": "Use when working with PDF files — reading, extracting text or tables, merging, splitting, or filling forms. Provides correct library choices and common patterns."
}

PDF Skill

When to use this skill

Load when the user asks you to:

  • Extract text or tables from a PDF
  • Merge or split PDF files
  • Fill in a PDF form
  • Add watermarks or annotations
  • Convert PDF to another format
  • Search for content inside a PDF

Library decision tree

Need to extract text from a normal (not scanned) PDF?
    → pdfplumber  (best text + table extraction)

Need to manipulate pages (merge, split, rotate)?
    → pypdf  (formerly PyPDF2)

Need to fill form fields?
    → pypdf  with writer.update_page_form_field_values()

PDF is scanned (images of pages, no selectable text)?
    → pytesseract + pdf2image  (OCR pipeline)

Need to create a PDF from scratch?
    → reportlab  or  fpdf2

Install

pip install pdfplumber pypdf
# For OCR:
pip install pytesseract pdf2image
# Also requires: tesseract-ocr (system package) and poppler-utils

Extract text — pdfplumber

import pdfplumber

with pdfplumber.open("document.pdf") as pdf:
    for page in pdf.pages:
        text = page.extract_text()
        if text:
            print(text)

Extract tables — pdfplumber

import pdfplumber

with pdfplumber.open("document.pdf") as pdf:
    for page in pdf.pages:
        tables = page.extract_tables()
        for table in tables:
            for row in table:
                print(row)

Merge PDFs — pypdf

from pypdf import PdfWriter

writer = PdfWriter()
for filename in ["part1.pdf", "part2.pdf", "part3.pdf"]:
    writer.append(filename)
with open("merged.pdf", "wb") as f:
    writer.write(f)

Split PDF — pypdf

from pypdf import PdfReader, PdfWriter

reader = PdfReader("document.pdf")
for i, page in enumerate(reader.pages):
    writer = PdfWriter()
    writer.add_page(page)
    with open(f"page_{i+1}.pdf", "wb") as f:
        writer.write(f)

Extract specific pages — pypdf

from pypdf import PdfReader, PdfWriter

reader = PdfReader("document.pdf")
writer = PdfWriter()
for page_num in [0, 2, 4]:          # 0-indexed
    writer.add_page(reader.pages[page_num])
with open("selected.pdf", "wb") as f:
    writer.write(f)

Common issues

Text comes back garbled or empty The PDF may use a non-standard encoding or be scanned. Try OCR:

# pip install pdf2image pytesseract
from pdf2image import convert_from_path
import pytesseract

images = convert_from_path("scanned.pdf")
for img in images:
    print(pytesseract.image_to_string(img))

Tables not extracting correctly Try adjusting the extraction strategy:

page.extract_table(table_settings={"vertical_strategy": "lines",
                                    "horizontal_strategy": "lines"})

Large PDF crashes memory Process page by page, don't load entire PDF into memory:

with pdfplumber.open("large.pdf") as pdf:
    for page in pdf.pages:
        process(page.extract_text())   # one page at a time

Version History

  • fb9709e Current 2026-07-24 11:37

Same Skill Collection

skills/agent-builder/SKILL.md
skills/code-review/SKILL.md

Metadata

Files
0
Version
fb9709e
Hash
328d56e1
Indexed
2026-07-24 11:37

Главная - Вики-сайт
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-08-07 07:52
浙ICP备14020137号-1 $Гость$