文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

python图片转换pdf

2023-01-31 05:46

关注
#!/home/chao/anaconda3/envs/test_py2/bin/python
#coding:utf-8
import os
import sys
from reportlab.lib.pagesizes import A4, landscape
from reportlab.pdfgen import canvas
from PIL import Image
from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.ttfonts import TTFont

#需要预告安装支持中文的字体,如simfang从win拷贝过来安装
def createPdf(dstpath,fileList):
    img = Image.open( fileList[0].decode('UTF-8') )
    c = canvas.Canvas(dstpath, img.size)#第一张图片的尺寸新建pdf

    pdfmetrics.registerFont(TTFont('simfang','simfang.ttf')) #注册字体
    fontheight=15
    c.setFont('simfang',fontheight)
    #c.drawString(100, 300, u'宋体宋体')
    height=fontheight
    num=1
    for i in fileList:#标明本pdf的文件列表
        c.drawString(fontheight,height,str(num)+"/"+str(len(fileList)))
        c.drawString(fontheight+50, height, os.path.split(i)[1])
        num+=1
        height+=fontheight
    c.showPage()


    for i in fileList:
        c.drawImage(i.decode('UTF-8'), 0, 0)#转换为中文路径名称打开
        c.showPage()
    c.save()
def transferPdf(filePath,dstpath):
#将一个目录下所有图片生成一个pdf
    fileList=[]
    #result=os.popen(" ls -l "+filePath+"| awk \'{print $9}\' | sort -t _ -k1,1 -k2n,2 ").read()
    result=os.popen(" ls  "+filePath+"|  sort -t _ -k1,1 -k2n,2 ").read()
    currentIndex=0
    pdfIndex=0
    for i in result.split("\n"):
        if i.strip()!='':
            print i
            fileList.append(os.path.join(filePath, i))
            currentIndex+=1
            if currentIndex == 100:#每几页一创建
                currentIndex=0
                pdfIndex+=1
                createPdf( os.path.join(dstpath, str(pdfIndex)+".pdf") ,fileList)
                fileList=[]


filePath = "/home/chao/img"#源图片文件夹
dstpath="/home/chao/tmp1"#转换出的pdf文件夹存放地址
transferPdf(filePath,dstpath)

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯