pdf-poppler
使用 Poppler 命令行工具处理 PDF:pdftotext 转文本、pdftoppm 转图片、pdfimages 提取图片、pdfinfo 查看元数据、pdftohtml 转 HTML、pdfseparate/pdfunite 拆分合并。用于 PDF 内容提取、格式转换、批量处理等任务。触发词:'提取 PDF 文本'、'PDF 转图片'、'提取 PDF 中的图片'、'查看 PDF 信息'、'拆分 PDF'。
Best use case
pdf-poppler is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
使用 Poppler 命令行工具处理 PDF:pdftotext 转文本、pdftoppm 转图片、pdfimages 提取图片、pdfinfo 查看元数据、pdftohtml 转 HTML、pdfseparate/pdfunite 拆分合并。用于 PDF 内容提取、格式转换、批量处理等任务。触发词:'提取 PDF 文本'、'PDF 转图片'、'提取 PDF 中的图片'、'查看 PDF 信息'、'拆分 PDF'。
Teams using pdf-poppler should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/pdf-poppler/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How pdf-poppler Compares
| Feature / Agent | pdf-poppler | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
使用 Poppler 命令行工具处理 PDF:pdftotext 转文本、pdftoppm 转图片、pdfimages 提取图片、pdfinfo 查看元数据、pdftohtml 转 HTML、pdfseparate/pdfunite 拆分合并。用于 PDF 内容提取、格式转换、批量处理等任务。触发词:'提取 PDF 文本'、'PDF 转图片'、'提取 PDF 中的图片'、'查看 PDF 信息'、'拆分 PDF'。
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# PDF-Poppler: Poppler PDF 工具集
Poppler 是开源 PDF 渲染库,提供强大的命令行工具集。
**完整参考**: [references/complete-reference.md](references/complete-reference.md) - 所有工具的详细选项
---
## 安装
```bash
# macOS
brew install poppler
# Ubuntu/Debian
sudo apt-get install poppler-utils
# Fedora
sudo dnf install poppler-utils
```
---
## 工具速查
| 工具 | 用途 | 最常用示例 |
|------|------|-----------|
| `pdftotext` | PDF → 文本 | `pdftotext -layout input.pdf output.txt` |
| `pdftoppm` | PDF → 图片 | `pdftoppm -png -r 300 input.pdf page` |
| `pdfimages` | 提取图片 | `pdfimages -png input.pdf image` |
| `pdfinfo` | 文档信息 | `pdfinfo input.pdf` |
| `pdftohtml` | PDF → HTML | `pdftohtml -s input.pdf output.html` |
| `pdfseparate` | 拆分页面 | `pdfseparate input.pdf page-%d.pdf` |
| `pdfunite` | 合并文件 | `pdfunite *.pdf output.pdf` |
---
## pdftotext - PDF 转文本
### 常用用法
```bash
# 基础转换
pdftotext input.pdf output.txt
# 保留布局(适合表格、多栏)
pdftotext -layout input.pdf output.txt
# 指定页码
pdftotext -f 3 -l 5 input.pdf output.txt # 第 3-5 页
# 指定编码(解决中文乱码)
pdftotext -enc UTF-8 input.pdf output.txt
# 输出到 stdout
pdftotext input.pdf -
# 生成带位置信息的 TSV
pdftotext -tsv input.pdf output.tsv
```
### 常用选项
| 选项 | 说明 |
|------|------|
| `-f N` | 起始页 |
| `-l N` | 结束页 |
| `-layout` | 保留物理布局 |
| `-enc UTF-8` | 设置编码 |
| `-tsv` | 输出 TSV(含边界框) |
| `-htmlmeta` | 生成 HTML |
---
## pdftoppm - PDF 转图片
### 常用用法
```bash
# PDF 转 PNG(默认 150 DPI)
pdftoppm -png input.pdf page
# 高质量 300 DPI
pdftoppm -png -r 300 input.pdf page
# 仅转换第 2-5 页
pdftoppm -png -f 2 -l 5 input.pdf page
# 仅奇数页
pdftoppm -png -o input.pdf page
# 高质量 JPEG,质量 95%
pdftoppm -jpeg -jpegopt "quality=95" input.pdf page
# 生成缩略图(宽度 200px)
pdftoppm -png -scale-to 200 input.pdf thumb
```
### 常用选项
| 选项 | 说明 |
|------|------|
| `-png` | PNG 格式 |
| `-jpeg` | JPEG 格式 |
| `-r N` | DPI 分辨率 |
| `-f/-l N` | 起止页 |
| `-o/-e` | 仅奇/偶页 |
| `-scale-to N` | 缩放长边到 N 像素 |
| `-jpegopt "quality=N"` | JPEG 质量 0-100 |
---
## pdfimages - 提取图片
### 常用用法
```bash
# 提取为 PNG
pdfimages -png input.pdf image_prefix
# 保持 JPEG 原格式,其他转 PNG
pdfimages -j -png input.pdf image_prefix
# 仅提取第 3-5 页
pdfimages -f 3 -l 5 -png input.pdf image_prefix
# 仅列出图片信息
pdfimages -list input.pdf
```
### 常用选项
| 选项 | 说明 |
|------|------|
| `-png` | PNG 格式 |
| `-j` | JPEG 保持原格式 |
| `-all` | 所有图片按原生格式 |
| `-list` | 仅列出信息 |
| `-p` | 文件名包含页码 |
---
## pdfinfo - 文档信息
```bash
# 查看完整信息
pdfinfo document.pdf
# 仅查看页数
pdfinfo document.pdf | grep Pages
# ISO 8601 日期格式
pdfinfo -isodates document.pdf
```
---
## pdftohtml - PDF 转 HTML
```bash
# 基础转换
pdftohtml input.pdf output.html
# 单页 HTML(无框架)
pdftohtml -s -noframes input.pdf output.html
# XML 格式
pdftohtml -xml input.pdf output.xml
# 忽略图片
pdftohtml -i input.pdf output.html
```
---
## pdfseparate & pdfunite - 拆分/合并
```bash
# 拆分每页为单独文件
pdfseparate input.pdf page-%d.pdf
# 生成: page-1.pdf, page-2.pdf...
# 拆分特定位数编号
pdfseparate input.pdf page-%03d.pdf
# 生成: page-001.pdf, page-002.pdf...
# 合并多个 PDF
pdfunite file1.pdf file2.pdf file3.pdf output.pdf
# 合并所有 PDF
pdfunite *.pdf combined.pdf
```
---
## 批量处理
```bash
# 批量提取文本
for pdf in *.pdf; do
pdftotext -layout "$pdf" "${pdf%.pdf}.txt"
done
# 批量获取标题
for pdf in *.pdf; do
echo -n "$pdf: "
pdfinfo "$pdf" | grep "Title:" | cut -d: -f2-
done
# 批量转图片(每个 PDF 一个目录)
for pdf in *.pdf; do
mkdir -p "${pdf%.pdf}_images"
pdftoppm -png "$pdf" "${pdf%.pdf}_images/page"
done
```
---
## 故障排除
| 问题 | 解决方案 |
|------|---------|
| 中文乱码 | `pdftotext -enc UTF-8 ...` |
| 扫描版 PDF 无文本 | 先用 `pdftoppm` 转图片,再 OCR |
| 加密 PDF | 使用 `-upw password` 或 `-opw password` |
| 命令未找到 (macOS) | `export PATH="/opt/homebrew/opt/poppler/bin:$PATH"` |
---
## 参考
- **完整选项参考**: [references/complete-reference.md](references/complete-reference.md)
- **官网**: https://poppler.freedesktop.org/
- **Man Pages**: https://manpages.debian.org/testing/poppler-utils/Related Skills
open-u-dashboard
open understand dashboard for user
sync-template-skill
这是一个技能文件的模板,展示了技能的基本结构和内容组织方式。
talk-humanize
Be direct and informative. No filler, no fluff, but give enough to be useful.
search-web
使用 Evaluator-optimizer 模式进行系统性多轮网络搜索,采用结构化 Ask 流程在搜索前澄清研究目标。基于 YC Office Hours 的提问方法论,确保搜索方向清晰、结果可验证。当用户需要深入调查复杂主题、验证假设或全面收集信息时使用。
save-to-eagle
归档网络内容到 Eagle 素材库。支持:(1) Behance/Pixiv 图片归档,(2) 网页视频录制(页面动画、滚动录制)。使用方式:'归档 [URL]' 归档图片;'录制网页视频 [URL]' 录制页面动画;'滚动录制 [URL]' 自动滚动截图。支持评分如 '归档 [URL], 3/5'。
save-ob-chaos
将对话内容快速存档到 Obsidian Chaos 文件夹。触发词:"存档到 Obsidian"、"保存到 Chaos"、"ob 存档"、"记下这个"、"保存这段内容"、"存到 chaos"。
save-ob-chaos-mermaid
将 Mermaid 图表保存到 Obsidian Chaos 文件夹。触发词:"保存 mermaid 到 chaos"、"mermaid 存档"。
save-ob-chaos-excalidraw
绘制 Excalidraw 图表并存档到 Obsidian Chaos 文件夹。触发词:"画个图存到 Obsidian"、"excalidraw 存档"、"画个流程图保存"、"画图存到 chaos"、"创建图表并存档"、"画架构图到 ob"。
release-project
项目版本发布流程指导,帮助用户完成版本规划、Changelog 管理、版本号升级、Git 标签创建和 npm 首次发布准备。Use when: (1) 用户需要发布新版本 (2) 需要创建版本发布流程 (3) 需要管理版本号和 Changelog (4) 需要自动化版本发布 (5) 需要检查 release 分支同步 (6) 首次 npm 发布准备
recognize-codebase-branch-flow
识别并记忆项目 git 分支模型
rebase-commits
将零散的 commits 整合为清晰的逻辑提交,使 Git 历史更易读。 Use when: (1) 用户说 "rebase commits"、"整理提交历史"、"让历史更干净" (2) 用户想将多个相关 commits 合并为逻辑单元 (3) 完成一个功能后需要清理 commit 历史 (4) 提交历史混乱,需要重新组织
read-codebase
阅读棕地项目代码库,智能分析代码结构,递归补充其调用链上所有函数的注释。