二、方法一:pdf2image(Python脚本,适合大批量自动化)
pip install pdf2image apt-get install poppler-utils # Linux;macOS 用 brew install poppler 核心代码示例 from pdf2image import convert_from_path images = convert_from_path('input.pdf', dpi=150) for i, img in enumerate(images): img.save(f'page_{i+1}.jpg', 'JPEG') 只需几行代码就能将PDF的每一页保存成单独的JPG文件,文件名自动带上页码。 关键参数说明 dpi参数决定了输出分辨率,是影响图片品质的核心设置: - dpi=72:适合网页预览,文件尺寸小 - dpi=150:日常办公的平衡点,清晰度足够且文件不过大 - dpi=300:需要打印或高质量归档时使用 还可以借助first_page和last_page参数指定只处理某几页,避免整本PDF都被转换: images = convert_from_path('input.pdf', dpi=150, first_page=2, last_page=5) 适用场景 这种方法适合需要定期批量转换的自动化工作场景,比如每天从服务器拉取报告PDF并转成图片进行归档。对于偶尔转一两个文件的普通用户,配置环境的成本稍高,更推荐后面的两种方式。三、方法二:PyMuPDF(fitz,速度快、控制精细)
pip install pymupdf 使用方式 import fitz # pymupdf 导入时用 fitz doc = fitz.open('input.pdf') for i, page in enumerate(doc): mat = fitz.Matrix(2, 2) # 2倍缩放,对应约 144 DPI pix = page.get_pixmap(matrix=mat) pix.save(f'page_{i+1}.jpg') fitz.Matrix(2, 2)中的数字代表缩放倍数,调整这个值就能控制输出分辨率。想要更清晰,可以改为fitz.Matrix(3, 3)。 进阶用法:只转特定页 page = doc[0] # 只取第一页,索引从0开始 pix = page.get_pixmap(matrix=fitz.Matrix(2, 2)) pix.save('first_page.jpg') PyMuPDF还支持在导出前对页面做旋转、裁剪区域等操作,适合需要精细控制输出内容的场景,比如只截取PDF页面的某一块区域转成图片。 适用场景 PyMuPDF在处理速度上表现突出,大批量文件转换时效率明显。同时它对PDF格式的兼容性较好,遇到复杂排版或内嵌字体的PDF时,渲染结果通常也比较准确。适合对性能和灵活性都有要求的开发者使用。四、方法三:命令行工具 pdftoppm(零代码,终端一行搞定)
# Ubuntu / Debian apt-get install poppler-utils # macOS brew install poppler 基本用法 pdftoppm -jpeg -r 150 input.pdf output_prefix 执行后会生成output_prefix-1.jpg、output_prefix-2.jpg……每页一个文件,自动编号。 参数说明: - -jpeg:输出格式为JPEG(也支持-png输出PNG) - -r 150:设置分辨率为150 DPI - 最后两个参数分别是输入文件路径和输出文件名前缀 只转某几页 pdftoppm -jpeg -r 150 -f 3 -l 6 input.pdf output_prefix -f 3 -l 6表示只处理第3到第6页,非常灵活。 批量处理多个文件 结合Shell循环,可以一次性批量处理整个目录下的所有PDF: for f in *.pdf; do pdftoppm -jpeg -r 150 "$f" "${f%.pdf}" done 适用场景 pdftoppm非常适合在服务器或自动化脚本中使用,不需要Python环境,调用开销低。对于运维、数据工程师来说,这是集成到Shell脚本或CI/CD流水线时的轻量方案。五、手机上怎么把PDF转成JPG?微信小程序方案
六、在线网页工具:无需安装,浏览器直接操作
七、DPI怎么设置才合适?
八、批量转换PDF为JPG的注意事项
九、总结
💡 更多精彩内容
微信搜索"小青去水印",一键免费去水印