最近因為想要看漫畫,無奈下載的漫畫是jpg的格式,網上的轉換器還沒一個好用的,于是乎就打算用python自己DIY一下:
這里主要用了reportlab。開始打算隨便寫幾行,結果為若干坑糾結了挺久,于是乎就想想干脆把代碼寫好點吧。
實現了以下的幾項功能:
將當前文件夾下的圖片保存到一個pdf中,支持選擇pdf大小等
如果有需要可以遍歷它下面的所有文件夾
簡單的來說完全滿足我將漫畫轉成pdf格式的需求了。
碰到了一些問題,這里記錄下:
一、中文路徑:
這個實在是略蛋疼,總之就是盡量都decode一遍。然后注意win下的路徑是/,要將其轉化成/。然后路徑遍歷的時候也要注意路徑怎么寫的。
二、reportlab使用
這個說實話很簡單,因為沒考慮加點文字什么的其實就一句代碼了
代碼如下:
c.drawImage(filelist[i] , 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了個丑陋的縮水的界面(好吧。。我承認我真不太會寫)
新聞熱點
疑難解答