mcpField
P
pdf-to-images

pdf-to-images

github.com/crazynomad文档处理27122 次安装13 周前更新
代码仓库

关于 pdf-to-images

pdf-to-images 是使用 ImageMagick 将 PDF 每页转换为图像的命令行技能。它适用于提取幻灯片、生成预览或准备后续处理所需的页面图像,并可设置分辨率和输出格式。

主要功能

  1. 01将 PDF 页面转换为图像
  2. 02支持 PNG、JPG 和 TIFF
  3. 03可设置 DPI 与 JPEG 质量
  4. 04自动处理多页文档
  5. 05按页码顺序命名输出文件

适用场景

  1. 01将演示文稿页面提取为图像
  2. 02为 PDF 创建图像预览
  3. 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 转换为图片时:

  1. 检查 ImageMagick 是否可用:

    which magick || which convert
    
  2. 执行转换:

    python /mnt/skills/user/pdf-to-images/scripts/pdf_to_images.py \
      "USER_PDF_FILE" -o /mnt/user-data/outputs -d 150
    
  3. 向用户展示文件:

    present_files(["/mnt/user-data/outputs/..."])
    

工作原理

工作流
  1. 验证:检查 PDF 文件是否存在,以及 ImageMagick 是否可用
  2. 创建输出目录:如果输出文件夹不存在,则创建
  3. 转换:使用 ImageMagick 将每一页转换为图片
  4. 报告:显示生成的文件和总数
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 文档的版权。

评论

支持 Markdown