| name | pdf-poppler |
| description | 使用 Poppler 命令行工具处理 PDF:pdftotext 转文本、pdftoppm 转图片、pdfimages 提取图片、pdfinfo 查看元数据、pdftohtml 转 HTML、pdfseparate/pdfunite 拆分合并。用于 PDF 内容提取、格式转换、批量处理等任务。触发词:'提取 PDF 文本'、'PDF 转图片'、'提取 PDF 中的图片'、'查看 PDF 信息'、'拆分 PDF'。 |
| disable-model-invocation | true |
PDF-Poppler: Poppler PDF 工具集
Poppler 是开源 PDF 渲染库,提供强大的命令行工具集。
完整参考: references/complete-reference.md - 所有工具的详细选项
安装
brew install poppler
sudo apt-get install poppler-utils
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 转文本
常用用法
pdftotext input.pdf output.txt
pdftotext -layout input.pdf output.txt
pdftotext -f 3 -l 5 input.pdf output.txt
pdftotext -enc UTF-8 input.pdf output.txt
pdftotext input.pdf -
pdftotext -tsv input.pdf output.tsv
常用选项
| 选项 | 说明 |
|---|
-f N | 起始页 |
-l N | 结束页 |
-layout | 保留物理布局 |
-enc UTF-8 | 设置编码 |
-tsv | 输出 TSV(含边界框) |
-htmlmeta | 生成 HTML |
pdftoppm - PDF 转图片
常用用法
pdftoppm -png input.pdf page
pdftoppm -png -r 300 input.pdf page
pdftoppm -png -f 2 -l 5 input.pdf page
pdftoppm -png -o input.pdf page
pdftoppm -jpeg -jpegopt "quality=95" input.pdf page
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 - 提取图片
常用用法
pdfimages -png input.pdf image_prefix
pdfimages -j -png input.pdf image_prefix
pdfimages -f 3 -l 5 -png input.pdf image_prefix
pdfimages -list input.pdf
常用选项
| 选项 | 说明 |
|---|
-png | PNG 格式 |
-j | JPEG 保持原格式 |
-all | 所有图片按原生格式 |
-list | 仅列出信息 |
-p | 文件名包含页码 |
pdfinfo - 文档信息
pdfinfo document.pdf
pdfinfo document.pdf | grep Pages
pdfinfo -isodates document.pdf
pdftohtml - PDF 转 HTML
pdftohtml input.pdf output.html
pdftohtml -s -noframes input.pdf output.html
pdftohtml -xml input.pdf output.xml
pdftohtml -i input.pdf output.html
pdfseparate & pdfunite - 拆分/合并
pdfseparate input.pdf page-%d.pdf
pdfseparate input.pdf page-%03d.pdf
pdfunite file1.pdf file2.pdf file3.pdf output.pdf
pdfunite *.pdf combined.pdf
批量处理
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
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" |
参考