前陣子買了一本電子書,沒想到 epub 檔只不過是紙本的圖檔打包而已。充斥白邊在紙上或許有某種美感,但是在閱讀器上實在有點惱人,所以我就用 PIL 做了適當的剪裁,然後再用 ebooklib 重新打包 epub。因為對 ebooklib 不那麼熟,花了一點點時間才搞定,程式碼放在這裡給其他有類似需求的人參考。
這裡要說明一下,一般來說圖檔打包成 cbz 已經足夠了,但我這本是文字書,還是希望有個完善的目錄。雖然 Calibre 可以直接將 cbz 轉成 epub,但是還是有些不盡理想的地方,首先是圖片自動縮放的問題,再來是目錄的問題。當然還有一個因素是我忍不住愛折騰。
novus 發表在 痞客邦 留言(0) 人氣(1,195)

假想有一個小鎮住著 1000 人,每個人每週都會獲得當地幣值十元的淨收入。所以一個人十週共可存下 100 元,一年五十二週就是 520 元,沒有任何人例外。
這個小鎮最大的娛樂就是每個週末的賭馬了,每場比賽固定都會有兩匹馬參賽,勝率各為 50%,而且沒有人作弊或者具備內線消息,總之,押對的機率大概就和擲一枚公平硬幣一樣。
任何人只要出得起 1 元即可下注,押錯了就拿不回賭金,而押對的人則按照下注比例分配所有金錢。賽馬場完全不會抽成做手續費或選手獎金,純粹是非營利的大眾娛樂。舉例來說,假如下注兩匹馬的金額剛好為 5:4,有位鎮民押 1 號 5 元,如果他猜對了就可以拿回 9 元,猜錯了則一毛也拿不到。
在這個小鎮裡,大家的個性完全一致,只會拿自己總財產的十分之一下注。如果一個人財產的十分之一無法到達 1 元的下注門檻,那麼他寧可不賭,也不會掏更大的比例出來。
novus 發表在 痞客邦 留言(1) 人氣(335)
使用 tkFileDialog 取得多個檔案名稱有個惱人的小問題,即 tkFileDialog 並不會回傳 python list,而是傳回多個檔名串成的字串。當檔名不包含空白的時候,這個字串會以空白分隔各個檔名;否則各檔名會包含於 {} 當中。
filenames = tkFileDialog.askopenfilename(...)
# Example result:
# D:/file1.txt D:/file2.txt D:/file3.txt
# {C:/My Document/file1.txt} {D:/My Precious/file2.txt}
novus 發表在 痞客邦 留言(0) 人氣(650)
過去一年多裡 docutils 已經成為我最喜歡的排版工具,本部落格大部分的文章也都是用 docutils 輸出的。但 docutils 還是有無法盡如人意之處,其中最主要的問題在於所產生的 HTML 和我部落格原本的 CSS 並不相容,例如 docutils 通常用 class 來指定樣式,但是我既有的策略恰好希望文章內容不要用 class selector。其次是 docutils 生成的 HTML 對於部落格來說頗為累贅,例如標題和區段會輸出成:
<h1>ooxx</h1>
<div class="section" id="ooxx">
novus 發表在 痞客邦 留言(0) 人氣(136)