设为首页 收藏本站
查看: 1302|回复: 0

[经验分享] 用python DIY一个图片转pdf工具并打包成exe

[复制链接]

尚未签到

发表于 2015-4-21 05:44:47 | 显示全部楼层 |阅读模式
  最近因为想要看漫画,无奈下载的漫画是jpg的格式,网上的转换器还没一个好用的,于是乎就打算用python自己DIY一下:
  这里主要用了reportlab。开始打算随便写几行,结果为若干坑纠结了挺久,于是乎就想想干脆把代码写好点吧。

实现了以下的几项功能:


  • 将当前文件夹下的图片保存到一个pdf中,支持选择pdf大小等  

  • 如果有需要可以遍历它下面的所有文件夹
  简单的来说完全满足我将漫画转成pdf格式的需求了。

碰到了一些问题,这里记录下:

一、中文路径:
  这个实在是略蛋疼,总之就是尽量都decode一遍。然后注意win下的路径是\,要将其转化成/。然后路径遍历的时候也要注意路径怎么写的。

二、reportlab使用
  这个说实话很简单,因为没考虑加点文字什么的其实就一句代码了
  

c.drawImage(filelist , 0,0,maxw,maxh)   

  注意文件名也要各种decode啊。
  总之借助强大的python有效代码就30行左右吧,代码地址

三、pyInstall的打包问题
  开始是打算用py2exe结果打算接个简单的gui(真的是很简单)就开始跟我各种错,改的差不多想整成一个exe的时候有给我来个64bit not support。然后就转投pyInstall了,不过事情远不是那么顺利,如果用的是2.1版的话你会发现又有个巨大的bug--打包出来的exe居然不能放在中文路径下,于是乎各种找解决方案,然后发现了两种解决途径,一种是有个修改的版本(https://github.com/dkw72n/pyinstaller.git),另一种是选择2.0版。这个解决之后感觉这个比py2exe好多了,强烈推荐!
  简单说下使用过程:
  首先是安装:
  1、下载安装pywin32;
  2、下载pyInstall2.0版本(我觉得这样最好)
  3、下载upx然后将文件夹中的upx.exe移动到pyInstall文件夹中
  这样就完成了,连安装都不用(当然你安装也行。。。)
  使用的话就是
  

python pyinstaller.py -F c:\scripts\main.py  

  如果不想要黑框的话再加个-w的参数就好。其他参数:
  

-F, --onefile Py代码只有一个文件  
-D, --onedir Py代码放在一个目录中(默认是这个)
  
-K, --tk 包含TCL/TK
  
-d, --debug 生成debug模式的exe文件
  
-w, --windowed, --noconsole 窗体exe文件(Windows Only)
  
-c, --nowindowed, --console 控制台exe文件(Windows Only)
  
-X, --upx 使用upx压缩exe文件
  
-o DIR, --out=DIR 设置spec文件输出的目录,默认在PyInstaller同目录
  
--icon= 加入图标(Windows Only)
  
-v FILE, --version=FILE 加入版本信息文件
  

  最后pyqt了个丑陋的缩水的界面(好吧。。我承认我真不太会写)
DSC0000.png
DSC0001.jpg
  打包大小9M,算是可以接受了
  运行效果(还不错啦):
DSC0002.jpg

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-58949-1-1.html 上篇帖子: python天天进步(3)--字典排序 下篇帖子: Python 自动化Web测试
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

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