返回顶部
p

pdfPDF处理工具

Comprehensive PDF manipulation toolkit for extracting text and tables, creating new PDFs, merging/splitting documents, and handling forms. When Claude needs to fill in a PDF form or programmatically process, generate, or analyze PDF documents at scale.

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.0.0
安全检测
已通过
264
下载量
免费
免费
1
收藏
概述
安装方式
版本历史

pdf

PDF 处理指南

概述

本指南涵盖了使用 Python 库和命令行工具进行基本 PDF 处理操作的内容。如需了解高级功能、JavaScript 库和详细示例,请参阅 reference.md。如果需要填写 PDF 表单,请阅读 forms.md 并按照其说明操作。

快速入门

python
from pypdf import PdfReader, PdfWriter

读取 PDF

reader = PdfReader(document.pdf) print(f页数: {len(reader.pages)})

提取文本

text = for page in reader.pages: text += page.extract_text()

Python 库

pypdf - 基本操作

合并 PDF

python 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

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

提取元数据

python reader = PdfReader(document.pdf) meta = reader.metadata print(f标题: {meta.title}) print(f作者: {meta.author}) print(f主题: {meta.subject}) print(f创建者: {meta.creator})

旋转页面

python reader = PdfReader(input.pdf) writer = PdfWriter()

page = reader.pages[0]
page.rotate(90) # 顺时针旋转90度
writer.add_page(page)

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

pdfplumber - 文本和表格提取

保留布局提取文本

python import pdfplumber

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

提取表格

python with pdfplumber.open(document.pdf) as pdf: for i, page in enumerate(pdf.pages): tables = page.extract_tables() for j, table in enumerate(tables): print(f第{i+1}页上的第{j+1}个表格:) for row in table: print(row)

高级表格提取

python 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)

合并所有表格

if all_tables: combineddf = pd.concat(alltables, ignore_index=True) combineddf.toexcel(extracted_tables.xlsx, index=False)

reportlab - 创建 PDF

基本 PDF 创建

python 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.drawString(100, height - 120, This is a PDF created with reportlab)

添加线条

c.line(100, height - 140, 400, height - 140)

保存

c.save()

创建多页 PDF

python from reportlab.lib.pagesizes import letter from reportlab.platypus import SimpleDocTemplate, Paragraph, Spacer, PageBreak from reportlab.lib.styles import getSampleStyleSheet

doc = SimpleDocTemplate(report.pdf, pagesize=letter)
styles = getSampleStyleSheet()
story = []

添加内容

title = Paragraph(报告标题, styles[Title]) story.append(title) story.append(Spacer(1, 12))

body = Paragraph(这是报告正文。 * 20, styles[Normal])
story.append(body)
story.append(PageBreak())

第2页

story.append(Paragraph(第2页, styles[Heading1])) story.append(Paragraph(第2页的内容, styles[Normal]))

构建 PDF

doc.build(story)

命令行工具

pdftotext (poppler-utils)

bash

提取文本

pdftotext input.pdf output.txt

保留布局提取文本

pdftotext -layout input.pdf output.txt

提取指定页面

pdftotext -f 1 -l 5 input.pdf output.txt # 第1-5页

qpdf

bash

合并 PDF

qpdf --empty --pages file1.pdf file2.pdf -- merged.pdf

拆分页面

qpdf input.pdf --pages . 1-5 -- pages1-5.pdf qpdf input.pdf --pages . 6-10 -- pages6-10.pdf

旋转页面

qpdf input.pdf output.pdf --rotate=+90:1 # 将第1页旋转90度

移除密码

qpdf --password=mypassword --decrypt encrypted.pdf decrypted.pdf

pdftk (如果可用)

bash

合并

pdftk file1.pdf file2.pdf cat output merged.pdf

拆分

pdftk input.pdf burst

旋转

pdftk input.pdf rotate 1east output rotated.pdf

常见任务

从扫描版 PDF 提取文本

python

需要: pip install pytesseract pdf2image

import pytesseract from pdf2image import convertfrompath

将 PDF 转换为图像

images = convertfrompath(scanned.pdf)

对每页进行 OCR

text = for i, image in enumerate(images): text += f第{i+1}页:\n text += pytesseract.imagetostring(image) text += \n\n

print(text)

添加水印

python from pypdf import PdfReader, PdfWriter

创建水印(或加载现有水印)

watermark = PdfReader(watermark.pdf).pages[0]

应用到所有页面

reader = PdfReader(document.pdf) writer = PdfWriter()

for page in reader.pages:
page.merge_page(watermark)
writer.add_page(page)

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

提取图像

bash

使用 pdfimages (poppler-utils)

pdfimages -j input.pdf output_prefix

这将提取所有图像为 outputprefix-000.jpg, outputprefix-001.jpg 等

密码保护

python from pypdf import PdfReader, PdfWriter

reader = PdfReader(input.pdf)
writer = PdfWriter()

for page in reader.pages:
writer.add_page(page)

添加密码

writer.encrypt(userpassword, ownerpassword)

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

快速参考

任务最佳工具命令/代码
合并 PDFpypdfwriter.add_page(page)
拆分 PDF
pypdf | 每页一个文件 | | 提取文本 | pdfplumber | page.extract_text() | | 提取表格 | pdfplumber | page.extract_tables() | | 创建 PDF | reportlab | Canvas 或 Platypus | | 命令行合并 | qpdf | qpdf --empty --pages ... | | OCR 扫描版 PDF | pytesseract | 先转换为图像 | | 填写 PDF 表单 | pdf-lib 或 pypdf (参见 forms.md) | 参见 forms.md |

后续步骤

  • - 如需了解高级 pypdfium2 用法,请参阅 reference.md
  • 如需了解 JavaScript 库 (pdf-lib),请参阅 reference.md
  • 如果需要填写 PDF 表单,请按照 forms.md 中的说明操作
  • 如需故障排除指南,请参阅 reference.md

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 my-pdf-1776377641 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 my-pdf-1776377641 技能

通过命令行安装

skillhub install my-pdf-1776377641

下载

⬇ 下载 pdf v1.0.0(免费)

文件大小: 2.96 KB | 发布时间: 2026-4-17 15:28

v1.0.0 最新 2026-4-17 15:28
my-pdf v1.0.0

- Initial release of a comprehensive PDF manipulation toolkit.
- Features extraction of text and tables, PDF creation, merging/splitting, metadata retrieval, rotation, watermarking, and password protection.
- Includes usage guides for Python libraries (pypdf, pdfplumber, reportlab) and command-line tools (pdftotext, qpdf, pdftk).
- Covers extraction of images and OCR from scanned PDFs.
- Provides quick reference table for common PDF tasks.
- Additional instructions for PDF form handling are in forms.md.

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部