mcpField
P
pdf

pdf

github.com/shareai-lab文档处理79.5k179 次安装3 天前更新
代码仓库

关于 pdf

面向 PDF 文档处理的技能指南,涵盖读取、创建、合并与拆分,并介绍命令行和 Python 方法,也说明扫描件及大型文件的处理方式。

主要功能

  1. 01提取文本与元数据
  2. 02从 Markdown、代码或 HTML 创建 PDF
  3. 03合并与拆分文档
  4. 04扫描件及大型 PDF 处理建议

适用场景

  1. 01提取 PDF 文本以便后续处理
  2. 02将 Markdown 或 HTML 转为 PDF
  3. 03合并文档或拆分 PDF 页面

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/shareai-lab/learn-claude-code --skill pdf

安装后在 Claude Code 中输入/pdf确认已加载。

详细介绍

PDF 处理技能

现在,你已掌握 PDF 操作。请遵循以下工作流:

读取 PDF

选项 1:快速提取文本(首选)

# Using pdftotext (poppler-utils)
pdftotext input.pdf -  # Output to stdout
pdftotext input.pdf output.txt  # Output to file

# If pdftotext not available, try:
python3 -c "
import fitz  # PyMuPDF
doc = fitz.open('input.pdf')
for page in doc:
    print(page.get_text())
"

选项 2:逐页读取并获取元数据

import fitz  # pip install pymupdf

doc = fitz.open("input.pdf")
print(f"Pages: {len(doc)}")
print(f"Metadata: {doc.metadata}")

for i, page in enumerate(doc):
    text = page.get_text()
    print(f"--- Page {i+1} ---")
    print(text)

创建 PDF

选项 1:从 Markdown 创建(推荐)

# Using pandoc
pandoc input.md -o output.pdf

# With custom styling
pandoc input.md -o output.pdf --pdf-engine=xelatex -V geometry:margin=1in

选项 2:通过编程方式创建

from reportlab.lib.pagesizes import letter
from reportlab.pdfgen import canvas

c = canvas.Canvas("output.pdf", pagesize=letter)
c.drawString(100, 750, "Hello, PDF!")
c.save()

选项 3:从 HTML 创建

# Using wkhtmltopdf
wkhtmltopdf input.html output.pdf

# Or with Python
python3 -c "
import pdfkit
pdfkit.from_file('input.html', 'output.pdf')
"

合并 PDF

import fitz

result = fitz.open()
for pdf_path in ["file1.pdf", "file2.pdf", "file3.pdf"]:
    doc = fitz.open(pdf_path)
    result.insert_pdf(doc)
result.save("merged.pdf")

拆分 PDF

import fitz

doc = fitz.open("input.pdf")
for i in range(len(doc)):
    single = fitz.open()
    single.insert_pdf(doc, from_page=i, to_page=i)
    single.save(f"page_{i+1}.pdf")

主要库

任务库安装
读取/写入/合并PyMuPDFpip install pymupdf
从头创建ReportLabpip install reportlab
HTML 转 PDFpdfkitpip install pdfkit + wkhtmltopdf
文本提取pdftotextbrew install poppler / apt install poppler-utils

最佳实践

  1. 使用前务必检查工具是否已安装
  2. 处理编码问题——PDF 可能包含各种字符编码
  3. 大型 PDF:逐页处理以避免内存问题
  4. 扫描版 PDF 的 OCR:如果文本提取结果为空,请使用 pytesseract

评论

支持 Markdown