PDF处理 pdf

PDF处理技能提供全面的PDF文档操作功能,包括文本和表格提取、PDF创建、合并与分割、表单处理等。适用于程序化处理和大规模文档分析,工具涵盖Python库如pypdf、pdfplumber、reportlab以及命令行工具。关键词:PDF处理、文本提取、表格解析、文档自动化、Python编程。

其他 0 次安装 0 次浏览 更新于 3/8/2026

名称: pdf处理 描述: 全面的PDF处理工具包,用于提取文本和表格、创建新PDF、合并/分割文档和处理表单。当Claude需要填写PDF表单或大规模程序化处理、生成或分析PDF文档时使用。 来源: anthropics/skills 许可证: Apache-2.0

PDF处理指南

快速开始

from pypdf import PdfReader, PdfWriter

# 读取PDF
reader = PdfReader("document.pdf")
print(f"Pages: {len(reader.pages)}")

# 提取文本
text = ""
for page in reader.pages:
    text += page.extract_text()

Python库

pypdf - 基本操作

合并PDF

from pypdf import PdfWriter, PdfReader

writer = PdfWriter()
for pdf_file in ["doc1.pdf", "doc2.pdf", "doc3.pdf"]:
    reader = PdfReader(pdf_file)
    for page in reader.pages:
        writer.add_page(page)

with open("merged.pdf", "wb") as output:
    writer.write(output)

分割PDF

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

pdfplumber - 文本和表格提取

提取表格

import pdfplumber
import pandas as pd

with pdfplumber.open("document.pdf") as pdf:
    all_tables = []
    for page in pdf.pages:
        tables = page.extract_tables()
        for table in tables:
            if table:
                df = pd.DataFrame(table[1:], columns=table[0])
                all_tables.append(df)

reportlab - 创建PDF

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

c = canvas.Canvas("hello.pdf", pagesize=letter)
width, height = letter
c.drawString(100, height - 100, "Hello World!")
c.save()

命令行工具

# 提取文本 (poppler-utils)
pdftotext input.pdf output.txt

# 合并PDF (qpdf)
qpdf --empty --pages file1.pdf file2.pdf -- merged.pdf

# 分割页面
qpdf input.pdf --pages . 1-5 -- pages1-5.pdf

快速参考

任务 最佳工具 命令/代码
合并PDF pypdf writer.add_page(page)
分割PDF pypdf 每页一个文件
提取文本 pdfplumber page.extract_text()
提取表格 pdfplumber page.extract_tables()
创建PDF reportlab Canvas或Platypus
OCR扫描PDF pytesseract 先转换为图像