96SEO 2026-02-20 00:17 28
在python中将图片转换为pdf格式的方法有多种每种方法依赖于不同的库和工具本篇文章我将介绍三种常用的库包括img2pdf

下面我将通过实际案例教会大家如何使用这三种库同时针对每一种库不同的转换方法准备相应的模板代码让新手小白也能轻松驾驭。
2、准备图片路径列表将需要转换的图片路径全部放进一个列表中若只有一张图片同样也将其路径放入列表中即可
all_images/03.png,all_images/04.png]#
函数只能接受一个图片文件对象的列表或者一个包含图片文件路径的列表#
pdf_file:pdf_file.write(pdf_bytes)print(PDF
我们可以看到img2pdf库的使用是非常简单的它会将每张图片作为
文件中的一个独立页面进行添加有多少张图片就会生成多上张pdf页面
resolution100)参数说明参数1保存路径参数2保存格式参数3resolution该参数用于设置pdf的分辨率不写默认为75print(f图片已成功转换为
all_images/03.png,all_images/04.png]#
[Image.open(image).convert(RGB)
images[0].save(output_pdf_path,
先将第一张图片保存为pdf文件在通过append_images参数将剩余的图片追加进去参数说明参数1保存路径参数2save_allTrue表示将所有图片都存入一个pdf文件中参数3append_images图片对象列表指定要追加的图片对象列表
通过上面的案例我们很轻松的通过pillow库将图片转换为了pdf格式其中参数的使用也非常简单但大家可能会对
的显示效果适应不同的需求如打印或屏幕查看。
在实际使用中建议根据具体场景选择合适的分辨率值。
PyMuPDFfitz库提供了强大的PDF和图像处理能力它是一个强大的PDF处理库它允许你读取、修改和创建PDF文件。
它也支持从图片创建PDF。
4、使用convert_to_pdf函数将图片文件对象转换为pdf格式
8、关闭图片文件和pdf文档这两步默认可不写但为了代码规范我们可以加上
pdf_document.close()print(图片已转换为pdf文档)执行效果
841.75)前两个数字代表图片左上角的坐标后两个数字代表图片右下角的坐标同时也是图片的宽度和高度
方法说明根据下面看两种方法可以得到图片宽度和高度1、image_rect.width获取图片的宽度595.252、image_rect.height获取图片的宽度841.75
6、创建一个新的PDF页面这里我们指定其尺寸与图像相同或根据需要调整
pdf_document.new_page(widthimage_rect.width,
heightimage_rect.height)参数说明参数1width指定pdf页面的宽度参数2height指定pdf页面的高度
注意这里我们假设图像应该覆盖整个页面因此使用pdf_page.rect作为插入区域
pdf_page.insert_image(rectpdf_page.rect,
指定图片插入的位置通常为pdf页面的矩形区域也可以是图片的矩形区域这里两者相同参数2filename
图片路径指定要插入的图片参数3streamNone默认参数表示允许指定图片以二进制格式插入pdf文档中
9、关闭图像文件和pdf文档默认可不写这里为了代码规范我们可以写上
pdf_document.close()print(图片已转换为了pdf文档)执行效果
选择图片的第一页生成矩形区域用于获取图片的尺寸img_page
pdf_document.new_page(widthimg_page.width,
参数以进行裁剪或缩放pdf_page.insert_image(rectfitz.Rect(0,
filenameimage_path,streamNone)说明rect
通过fitz.Rect方法可以手动调节图片插入的位置前两个数字为图片左上角的坐标后两个数字为图片右下角的坐标这里就是pdf页面的宽度和高度#
pymupdf这通常是自动处理的但显式关闭是个好习惯img.close()#
文档pdf_document.save(output_pdf)#
pymupdf这也通常是自动处理的但显式关闭可以避免潜在的资源泄露pdf_document.close()#
all_images/03.png,all_images/04.png]
通过前面的学习我们已经掌握了三种将图片转换为pdf格式的方法这三种方法都有一个共同点它们会将每一张图片单独生成一张pdf页面有多少张图片就会有多少张pdf页面且每张pdf页面间都会有一段空白的填充区来分隔每张pdf页面但是有时我们需要将多张连贯的图片转换为pdf格式这时若按照原来的方法操作每张图片间就会出现空白部分影响观感所以接下来我会依照这个问题给出解决方法。
images_to_single_pdf_page(image_paths,
pdf_document.new_page(widthmax_width,
初始化图片高度用于定义图片右下角的坐标point_height
img_document.load_page(0).rect#
在PDF页面上绘制图片紧密排列不留空白pdf_page.insert_image(rectfitz.Rect(0,current_y,
point_height),filenameimg_file,
使图片依次垂直拼接在一张pdf页面上(0,current_y)表示每张图片插入pdf页面左上角的坐标(img_page.width,
point_height)表示每张图片插入pdf右下角的坐标#
更新当前y位置以放置下一张图片直接跳到下一张图片的起始位置current_y
保存PDF文档至指定位置pdf_document.save(output_pdf)#
all_images/03.png,all_images/04.png]
images_to_single_pdf_page(image_paths,
output_pdf)print(所有图片已全部拼接至一张pdf页面上)执行效果
从上面我们可以看到所有图片在转换为pdf格式后全部拼接在了一张pdf页面上且每张图片间没有空隙。
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback