关于 pdf-to-images
pdf-to-images 是使用 ImageMagick 将 PDF 每页转换为图像的命令行技能。它适用于提取幻灯片、生成预览或准备后续处理所需的页面图像,并可设置分辨率和输出格式。
主要功能
- 01将 PDF 页面转换为图像
- 02支持 PNG、JPG 和 TIFF
- 03可设置 DPI 与 JPEG 质量
- 04自动处理多页文档
- 05按页码顺序命名输出文件
适用场景
- 01将演示文稿页面提取为图像
- 02为 PDF 创建图像预览
- 03准备页面图像以供进一步分析
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ crazynomad/ skills --skill pdf-to-images安装后在 Claude Code 中输入/pdf-to-images确认已加载。
附带文件scripts/pdf_to_images.py
详细介绍
PDF 转图片转换器
使用 ImageMagick 将 PDF 文件转换为一系列图片。
描述
一款简单而强大的工具,可将 PDF 文档转换为单页 PNG 图片。适用于提取演示文稿中的幻灯片、创建图片预览,或处理 PDF 内容以供进一步分析。
使用场景
在用户遇到以下情况时使用此技能:
- 想将 PDF 转换为图片
- 需要从 PDF 演示文稿中提取幻灯片
- 提到“PDF 转图片”“拆解 PDF”“PDF to PNG”
- 想从 PDF 文档创建图片预览
- 需要获取多页 PDF 中每一页的图片
功能
- 由 ImageMagick 驱动:行业标准的图像处理工具
- 可配置 DPI:调整输出分辨率(默认:150 DPI)
- 多种格式:支持输出为 PNG、JPG、TIFF
- 批量处理:自动处理多页 PDF
- 顺序命名:输出文件使用页码命名(slide-00、slide-01 等)
用法
基本语法
python scripts/pdf_to_images.py "PDF_FILE" [-o OUTPUT_DIR] [-d DPI] [-f FORMAT]
常见场景
将 PDF 转换为 PNG 图片(默认):
python scripts/pdf_to_images.py "presentation.pdf"
指定输出目录:
python scripts/pdf_to_images.py "document.pdf" -o ./output-images
高分辨率输出(300 DPI):
python scripts/pdf_to_images.py "document.pdf" -d 300
输出为 JPEG:
python scripts/pdf_to_images.py "document.pdf" -f jpg -q 90
参数
pdf_file(必需):PDF 文件的路径-o, --output:输出目录(默认:与 PDF 位于同一目录,并添加-slides后缀)-d, --dpi:DPI 分辨率(默认:150)-f, --format:输出格式:png、jpg、tiff(默认:png)-q, --quality:JPEG 质量,范围为 1-100(默认:85,仅适用于 jpg 格式)-p, --prefix:输出文件名前缀(默认:slide)
依赖项
需要在系统上安装 ImageMagick:
macOS:
brew install imagemagick
Ubuntu/Debian:
sudo apt-get install imagemagick
Windows: 从 https://imagemagick.org/script/download.php 下载
输出结构
output-directory/
├── slide-00.png # Page 1
├── slide-01.png # Page 2
├── slide-02.png # Page 3
└── ...
Claude 集成
当用户请求将 PDF 转换为图片时:
-
检查 ImageMagick 是否可用:
which magick || which convert -
执行转换:
python /mnt/skills/user/pdf-to-images/scripts/pdf_to_images.py \ "USER_PDF_FILE" -o /mnt/user-data/outputs -d 150 -
向用户展示文件:
present_files(["/mnt/user-data/outputs/..."])
工作原理
工作流
- 验证:检查 PDF 文件是否存在,以及 ImageMagick 是否可用
- 创建输出目录:如果输出文件夹不存在,则创建
- 转换:使用 ImageMagick 将每一页转换为图片
- 报告:显示生成的文件和总数
ImageMagick 命令
脚本使用:
magick -density {DPI} "{input.pdf}" "{output_dir}/{prefix}-%02d.{format}"
对于较旧版本的 ImageMagick(v6),则使用:
convert -density {DPI} "{input.pdf}" "{output_dir}/{prefix}-%02d.{format}"
限制
- 需要在系统上安装 ImageMagick
- 处理大型 PDF 可能需要一些时间
- 内存用量取决于 PDF 的复杂度和 DPI 设置
- 某些受保护的 PDF 可能无法转换
常见问题
问:出现“convert: not authorized”错误怎么办? 答:编辑 ImageMagick policy 文件以允许读取 PDF:
sudo sed -i 's/rights="none" pattern="PDF"/rights="read|write" pattern="PDF"/' /etc/ImageMagick-*/policy.xml
问:输出图片太小或太大怎么办?
答:使用 -d 标志调整 DPI。屏幕显示适合使用 150 DPI,打印适合使用 300 DPI。
问:转换速度太慢怎么办?
答:降低 DPI 可以缩短处理时间。尝试使用 -d 100 加快转换。
对话示例
用户:“帮我把这个 PDF 拆解成图片: presentation.pdf”
Claude:
# Check ImageMagick
which magick || which convert
# Convert PDF to images
python /mnt/skills/user/pdf-to-images/scripts/pdf_to_images.py \
"presentation.pdf" \
-o ./presentation-slides \
-d 150
# Present files
present_files(["./presentation-slides/slide-00.png", ...])
版本历史
v1.0(当前版本)
- 基于 ImageMagick 转换 PDF
- 可配置 DPI 和格式
- 自动创建输出目录
- 支持 PNG、JPG、TIFF 格式
许可证
个人使用工具。请尊重 PDF 文档的版权。