安全PDF转图片PDF Skill
发布信息
- 作者:安全陈工
- 版本:1.2.1
- 创建日期:2026-05-29
- 最后更新:2026-05-29
- 许可证:MIT
- 技能类型:用户技能
- 适用场景:PDF文档处理、文档归档、信息安全
技能目的
将PDF文件的每一页渲染为JPEG图片,然后重新组合成新的PDF文件。生成的新PDF不可编辑,适用于文档归档、防篡改和保护敏感信息等场景。使用JPEG格式可大幅减小输出文件大小。
使用场景
- 用户要求将PDF转换为图片PDF
- 用户需要使PDF内容不可编辑
- 用户需要保护PDF文档不被篡改
- 用户需要将PDF用于长期归档
- 用户提到"PDF转图片"、"图片PDF"、"不可编辑PDF"等关键词
使用方法
1. 检查依赖
使用前需要确认已安装PyMuPDF库:
pip install PyMuPDF
2. 执行转换
使用 scripts/pdf_to_image_pdf.py 脚本进行转换:
# 单文件处理
python scripts/pdf_to_image_pdf.py input.pdf
# 批量处理(处理当前目录所有PDF)
python scripts/pdf_to_image_pdf.py "*.pdf"
# 批量处理(处理指定目录)
python scripts/pdf_to_image_pdf.py /path/to/folder/
参数说明:
input:输入PDF文件、目录或通配符模式(如*.pdf)-o, --output-dir:(可选)输出目录,默认与输入文件同目录--dpi:(可选)DPI分辨率,默认200--quality:(可选)JPEG质量1-100,默认85--overwrite:(可选)覆盖已存在的输出文件--batch:(可选)强制批量处理模式
示例:
# 单文件处理(默认参数)
python scripts/pdf_to_image_pdf.py document.pdf
# 单文件处理(指定输出目录和参数)
python scripts/pdf_to_image_pdf.py document.pdf -o output_dir/ --dpi 200 --quality 85
# 批量处理当前目录所有PDF
python scripts/pdf_to_image_pdf.py "*.pdf"
# 批量处理指定目录,覆盖已存在文件
python scripts/pdf_to_image_pdf.py /path/to/folder/ -o output_dir/ --overwrite
3. 质量说明
- DPI 72:基础质量,文件最小,适合快速查看和传输
- DPI 100:标准质量,文件较小,适合日常使用
- DPI 150:高质量,文件适中,适合高质量归档
- DPI 200:推荐质量,文件大小适中,适合大多数场景(默认)
JPEG质量说明:
- 质量 75:较小文件,质量可接受
- 质量 85:推荐质量,平衡文件大小和清晰度(默认)
- 质量 95:高质量,文件较大,适合高质量归档
4. 批量处理说明
本技能支持批量处理多个PDF文件,适合处理整个项目文件夹或批量转换。
批量处理模式触发条件:
- 输入参数包含通配符(
*或?) - 输入参数是一个已存在的目录
- 使用
--batch参数强制批量模式
批量处理行为:
- 自动查找所有匹配的PDF文件(支持
*.pdf和*.PDF) - 为每个PDF生成对应的
_image.pdf输出文件 - 输出文件默认保存在输入文件同目录,可用
-o指定输出目录 - 处理过程中显示进度和每个文件的结果
- 处理完成后显示汇总信息(成功/失败数量)
批量处理示例:
# 处理当前目录所有PDF
python scripts/pdf_to_image_pdf.py "*.pdf"
# 处理指定目录所有PDF,输出到另一个目录
python scripts/pdf_to_image_pdf.py /path/to/input/ -o /path/to/output/
# 强制批量模式(即使输入是单个文件)
python scripts/pdf_to_image_pdf.py single.pdf --batch -o output/
技术实现
本技能使用PyMuPDF (fitz) 库实现:
- 打开源PDF文件
- 遍历每一页,使用指定DPI渲染为图片
- 将图片转换为JPEG格式(大幅减小文件大小)
- 创建新的PDF文档,将每张JPEG图片插入对应页面
- 保存新的图片PDF文件
生成的新PDF特点:
- 所有文本和图形都已转为JPEG图片
- 无法选择和复制文本
- 无法编辑原始内容
- 保持原始页面尺寸和布局
- 文件大小比PNG格式小10-20倍
注意事项
- 转换后的PDF文件大小取决于DPI和JPEG质量设置
- JPEG是有损压缩, quality<80可能有明显质量损失
- 图片PDF不适合需要文本搜索的场景
- 建议根据用途选择合适的参数:归档用DPI=200/quality=90,日常用DPI=200/quality=85(默认),快速查看用DPI=72/quality=75
- 处理大文件时可能需要较多内存和时间
- 批量处理时建议先在小批量文件上测试,确认参数和输出质量后再处理大量文件
- 使用
--overwrite参数需谨慎,会覆盖已存在的输出文件
脚本说明
scripts/pdf_to_image_pdf.py 是本技能的核心脚本,负责执行PDF到图片PDF的转换。脚本使用JPEG格式,支持自定义DPI和质量参数,以适应不同质量需求。
Scan to contact