mcpField
P
pdf

pdf

github.com/moizibnyousaf文档处理1.2k130 次安装6 周前更新
代码仓库

关于 pdf

一份使用 Python 库和命令行工具处理 PDF 的参考指南,涵盖读取、合并、拆分、提取文本与表格以及创建 PDF,并简要提及 OCR。

主要功能

  1. 01读取 PDF 并统计页数
  2. 02合并或拆分 PDF 文件
  3. 03提取文本和表格
  4. 04使用 reportlab 创建 PDF
  5. 05提供 pytesseract OCR 参考

适用场景

  1. 01提取 PDF 文档中的文本
  2. 02汇总 PDF 页面中的表格
  3. 03合并或拆分 PDF 文件
  4. 04通过 Python 生成 PDF

安装

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

$npx skills add https://github.com/moizibnyousaf/ai-agent-skills --skill pdf

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

详细介绍

PDF 处理指南

快速开始

from pypdf import PdfReader, PdfWriter

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

# Extract text
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()

命令行工具

# Extract text (poppler-utils)
pdftotext input.pdf output.txt

# Merge PDFs (qpdf)
qpdf --empty --pages file1.pdf file2.pdf -- merged.pdf

# Split pages
qpdf input.pdf --pages . 1-5 -- pages1-5.pdf

快速参考

任务最佳工具命令/代码
合并 PDFpypdfwriter.add_page(page)
拆分 PDFpypdf每个文件一页
提取文本pdfplumberpage.extract_text()
提取表格pdfplumberpage.extract_tables()
创建 PDFreportlabCanvas 或 Platypus
对扫描版 PDF 进行 OCRpytesseract先转换为图像

评论

支持 Markdown