请选择 进入手机版 | 继续访问电脑版

石家庄老站长

点击联系客服
客服QQ: 客服微信:
 找回密码
 立即注册
查看: 2|回复: 0

使用Python PIL将目录中的jpg图像批量转换为pdf文件

[复制链接]

1

主题

1

帖子

-7

积分

限制会员

积分
-7
发表于 2021-7-21 15:19:46 | 显示全部楼层 |阅读模式



一、引言

最近单位有一件事,一堆照片文件要先换成pdf文件,同事从windows下载了图形软件,但一次要转几百个jpg文件,太麻烦了,想用Python大量制作。(威廉莎士比亚、windows、windows、windows、windows)一查,图像处理库PIL库即可支持,试一试,需要30分钟左右,在这里分享。

关于PIL库的安装和介绍,网络上有更多的句子,所以这里不做部署介绍。

此外,本文的文件处理机制均基于windows系统,Linux等需要相应地进行调整。

二、基本实现思路

本文主要使用pil库的image模块,通过open方法打开图像并保存,可以轻松地从jpg移动到pdf。与单个文件处理相对应的函数实现如下:

Def  jpg2 pdf  (jpg文件)3360

Path,filename=jpgfile.r  split  ('\ \ ',1)

Prename,postname=filename.r  split(' . '),1)。

Img=image.open  (jpg文件)

Return  img。
/span>save(path+"\\"+preName+'.pdf', "PDF", resolution=100.0, save_all=True)

有了单个文件处理机制,就只需要读取目录下的文件逐一处理即可,具体代码请见下面的完整代码。

三、完整代码
from PIL import Image
import os
def jpg2pdf(jpgFile):
    path,fileName = jpgFile.rsplit('\\',1)
    preName,postName = fileName.rsplit('.',1)
    img = Image.open(jpgFile)
    return img.save(path+"\\"+preName+'.pdf', "PDF", resolution=100.0, save_all=True)
def jpg2pdfByPath(pathName):
    files = os.listdir(pathName)
    for f in files:
        if f.lower().find(".jpg")>0 :
            jpg2pdf(pathName+'\\'+f)
jpg2pdfByPath(r'c:\img\jpg')

四、小结
本文介绍了通过PIL图像处理库,批量将jpg等图像文件转成pdf文件的方法,并提供了完整实现代码。上述方法不仅适用于jpg图像文件,也适用于所有pil支持的图像文件,不过关于图像文件的匹配要稍微调整下。

写博不易,敬请支持:
如果阅读本文于您有所获,敬请点赞、评论、收藏,谢谢大家的支持!

如对文章内容存在疑问,可在博客评论区留言,或通过扫描博客左边的二维码关注:老猿Python 微信公号发消息咨询。

关于老猿的付费专栏
[ol]
  • 付费专栏《 使用PyQt开发图形界面Python应用》专门介绍基于Python的PyQt图形界面开发基础教程,对应文章目录为《  使用PyQt开发图形界面Python应用专栏目录》;
  • 付费专栏《 moviepy音视频开发专栏 )详细介绍moviepy音视频剪辑合成处理的类相关方法及使用相关方法进行相关剪辑合成场景的处理,对应文章目录为《moviepy音视频开发专栏文章目录》;
  • 付费专栏《 OpenCV-Python初学者疑难问题集》为《 OpenCV-Python图形图像处理 》的伴生专栏,是笔者对OpenCV-Python图形图像处理学习中遇到的一些问题个人感悟的整合,相关资料基本上都是老猿反复研究的成果,有助于OpenCV-Python初学者比较深入地理解OpenCV,对应文章目录为《 OpenCV-Python初学者疑难问题集专栏目录 》
  • 付费专栏《Python爬虫入门 》站在一个互联网前端开发小白的角度介绍爬虫开发应知应会内容,包括爬虫入门的基础知识,以及爬取CSDN文章信息、博主信息、给文章点赞、评论等实战内容。
    [/ol]
    前两个专栏都适合有一定Python基础但无相关知识的小白读者学习,第三个专栏请大家结合《 OpenCV-Python图形图像处理 》的学习使用。

    对于缺乏Python基础的同仁,可以通过老猿的免费专栏《 专栏:Python基础教程目录》从零开始学习Python。

    如果有兴趣也愿意支持老猿的读者,欢迎购买付费专栏。

    老猿Python,跟老猿学Python!
    ☞ ░ 前往老猿Python博文目录 ░
  • 回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|无图版|手机版|小黑屋|石家庄@IT精英团

    GMT+8, 2021-8-5 13:14 , Processed in 0.171600 second(s), 27 queries .

    Powered by Discuz! X3.4

    © 2001-2021 Comsenz Inc.

    快速回复 返回顶部 返回列表