Agent skill · Audited from source
skill · LeastBit/Claude_skills_zh-CNLicence not declaredAudited 19 Oct 2026 · source adadc22120ab
Is it safe? Yes — SAFE, grade B (89/100). We read this skill's source at commit adadc22120ab and found no filesystem, network or shell access and no hard-coded secrets. What it does: 全面的 PDF 操作工具包,用于提取文本和表格、创建新 PDF、合并/拆分文档以及处理表单。当 Claude 需要填写 PDF 表单或以编程方式大规模处理、生成或分析 PDF 文档时使用。
Cite
Cite this page
ModelsAtlas. “Pdf (LeastBit/Claude_skills_zh-CN)”. Retrieved 19 Oct 2026. https://modelsatlas.com/skills/leastbit/pdf
11 skills are called “Pdf”. You are viewing LeastBit/Claude_skills_zh-CN.
- LeastBit/Claude_skills_zh-CN★ 594✓SAFE
- anthropics/skills★ 177k✓SAFE
- danielmiessler/Personal_AI_Infrastructure★ 19k✓SAFE
- nextlevelbuilder/goclaw★ 3.6k!CAUTION
- LeoYeAI/openclaw-master-skills★ 2.2k✓SAFE
and 6 more with this name.
Trust audit
Audit 0.4.1 · source read 19 Oct 2026
SAFE means nothing in the source contradicts what the skill says it does. Grade B is shared by 16,667 of 17,602 audited skills.
What the source does
- FilesystemNone observedNo reads or writes in the source
- NetworkNone observedNo outbound calls in the source
- ShellNone observedNo commands run in the source
- DependenciesPinnedNothing floats
- SecretsNone foundNo keys in source
Five audit layers
| Layer | What we check | Result | Findings |
|---|---|---|---|
L0 Provenance | Repo owner, licence, archive status, activity | PASS | 0 |
L1 Static source | Secrets, path traversal, supply chain, hidden code | PASS | 0 |
L2 Instructions | Prompt injection, authority framing, hidden directives | PASS | 0 |
L3 Inventory | The files and declarations match the source | PASS | 0 |
L4 Sandbox | Run in isolation and watch behaviour | SKIPPED why | 0 |
Gates applied: no behavioural pass.
Findings (0)
No findings at any severity. We re-audit when the source changes.
Audit 0.4.1 · source sha adadc22120ab · 19 Oct 2026Report an issue or request a re-scan
Provenance
Who published it, and what the verdict is pinned to
- PublisherLeastBit GitHub userOwner of the repository this skill is read from
- Source folderLeastBit/Claude_skills_zh-CN/skills/pdfThe exact folder we audited
- LicenceNot declaredAs the repository states it
- Commit pinned for this verdictadadc22120abA new audit runs when the source changes
- Repository statusNot archivedLast push 273 days ago
- Sandboxed runNot runSkills are read, not executed; layer L4 is skipped
What it tells the agent
Full source on GitHub ↗Its description: 全面的 PDF 操作工具包,用于提取文本和表格、创建新 PDF、合并/拆分文档以及处理表单。当 Claude 需要填写 PDF 表单或以编程方式大规模处理、生成或分析 PDF 文档时使用。
---
name: pdf
description: 全面的 PDF 操作工具包,用于提取文本和表格、创建新 PDF、合并/拆分文档以及处理表单。当 Claude 需要填写 PDF 表单或以编程方式大规模处理、生成或分析 PDF 文档时使用。
license: 专有许可。完整条款请参阅 LICENSE.txt
---
# 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(f"page_{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:
combined_df = pd.concat(all_tables, ignore_index=True)
combined_df.to_excel("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, "这是用 reportlab 创建的 PDF")
# 添加线条
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 convert_from_path
# 将 PDF 转换为图像
images = convert_from_path('scanned.pdf')
# 对每一页进行 OCR 识别
text = ""
for i, image in enumerate(images):
text += f"第 {i+1} 页:\n"
text += pytesseract.image_to_string(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
# 这会将所有图像提取为 output_prefix-000.jpg、output_prefix-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)
```
## 快速参考
| 任务 | 最佳工具 | 命令/代码 |
|------|-----------|--------------|
| 合并 PDF | pypdf | `writer.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.mdExcerpt, first 5,930 characters of SKILL.md, verbatim from the audited commit. It is text from someone else’s repository, quoted so you can judge it before your agent reads it.
Install
Pinned to the audited commit adadc22
git clone https://github.com/LeastBit/Claude_skills_zh-CN git -C Claude_skills_zh-CN checkout adadc22120ab
The author documents no install command, so this uses the repository directly. Our verdict covers commit adadc22120ab only.
Works in
The author has not said which agents this skill supports, and we have not tested it in any.
Audit history
Every audit, every source change
- ✓SAFE B 89 / 100
first audit · source
adadc22120ab
Similar skills
LeastBit/Claude_skills_zh-CN
将 Anthropic 官方品牌颜色和字体应用于任何可能需要 Anthropic 视觉风格的作品。适用于品牌颜色或样式指南、视觉格式化或公司设计标准的场景。
LeastBit/Claude_skills_zh-CN
使用设计哲学创作精美的 .png 和 .pdf 格式视觉艺术作品。当用户要求创作海报、艺术品、设计作品或其他静态作品时,应使用此技能。创作原创视觉设计,切勿复制现有艺术家的作品以避免版权侵权。
LeastBit/Claude_skills_zh-CN
引导用户通过结构化的工作流程来协作撰写文档。当用户想要撰写文档、提案、技术规格说明、决策文档或类似的结构化内容时使用。这个工作流程帮助用户高效地传递上下文信息、通过迭代优化内容,并验证文档对读者是否有效。当用户提到撰写文档、创建提案、起草规格说明或类似的文档任务时触发。
LeastBit/Claude_skills_zh-CN
全面的文档创建、编辑和分析功能,支持修订追踪、批注、格式保留和文本提取。当 Claude 需要处理专业文档(.docx 文件)时使用:(1) 创建新文档,(2) 修改或编辑内容,(3) 处理修订追踪,(4) 添加批注,或其他任何文档任务
LeastBit/Claude_skills_zh-CN
创建独特的、生产级别的高质量前端界面。当用户要求构建网页组件、页面、作品、海报或应用程序时使用此技能(例如网站、落地页、仪表盘、React 组件、HTML/CSS 布局,或对任何网页 UI 进行样式美化)。生成富有创意、精致的代码和 UI 设计,避免千篇一律的 AI 审美。
LeastBit/Claude_skills_zh-CN
构建高质量 MCP(模型上下文协议)服务器的指南,使 LLM 能够通过精心设计的工具与外部服务交互。在使用 Python (FastMCP) 或 Node/TypeScript (MCP SDK) 构建 MCP 服务器以集成外部 API 或服务时使用。
Questions about Pdf
What does the Pdf skill do?
Is Pdf safe to install?
What can Pdf access on my machine?
How current is this page?
Sources
- github.com/LeastBit/Claude_skills_zh-CN/tree/main/skills/pdf — the audited source at commit adadc22120ab and every finding aboveObserved · 19 Oct 2026
Spotted something wrong? Report a correction · Methodology
Keep going in your AI
Opens with this page as the source. We add nothing else to the prompt.
- What does the Pdf skill do?
- Is Pdf safe to install?
- What can Pdf access on my machine?