专栏首页python3python图片转换pdf

python图片转换pdf

#!/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)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • NumPy学习笔记(一)

    用户2398817
  • Python学习笔记 --- pytho

    就是利用python中的 pexpect ,类似于linux下expect这个包。

    用户2398817
  • 在GNS3模拟NAT的仿真实验

    步骤1:让R2作为边界路由,确保它能够上网,同时配置NAT,让它代理内计算机上网。

    用户2398817
  • 机器学习到底能创造什么价值?我们精选了9位从业者的答案

    来源 | HackerNews 编译 | 晓查 不温不火的机器学习忽然蹿红业界,也就是这两三年的事,于是不仅传统行业,连风光一时的互联网公司也开始疑惑:我们要不...

    AI科技大本营
  • 如何学习框架

    方法一: *以各种方式了解这个框架产生的原因,及其主要解决的问题。1% *观察其主要外部接口(这里的外部接口是指公有类型)的使用场景,理解它的核心概念。5% *...

    用户1172223
  • 观点 | 我们该如何学习机器学习中的数学

    数学达到什么水平才可以开始机器学习?人们并不清楚,尤其是那些在校期间没有研究过数学或统计学的人。

    机器之心
  • 对比TensorFlow提升树与XGBoost:我们该使用怎样的梯度提升方法

    选自Nicolo Blog 作者:Nicolò Valigi 机器之心编译 参与:蒋思源 几个月前,TensorFlow 发布了梯度提升方法的调用接口,即 Te...

    企鹅号小编
  • 深度 | 对比TensorFlow提升树与XGBoost:我们该使用怎样的梯度提升方法

    机器之心
  • Wolfram 语言机器学习专题讲座

    WolframChina
  • 不可思议的纯 CSS 滚动进度条效果

    在继续阅读下文之前,你可以先缓一缓。尝试思考一下上面的效果或者动手尝试一下,不借助 JS ,能否巧妙的实现上述效果。

    Sb_Coco

扫码关注云+社区

领取腾讯云代金券