どうも。妄想テレパシー面白いですね。
で、面白いから先日買ったKindleでじっくり読みたい!と思えばなんとKindle版が無いんですよね。そりゃまあWebで掲載終了とかなく読めるし需要ないと判断されたのかもしれないけど、Kindleの方がスマホの比じゃなく読みやすいしできることならこっちで読みたい。
・・・なんて思いたって、先日環境整えたPythonの練習がてらプログラムを組んでみた。思ってより遥かに簡単に組めていい感じ。
著作権的にちょっとびみょいのでコードの配布・全体の公開はやめときます。ご了承ください。(とか言いつつ8割位載ってる)
Pythonコード
Pythonのバージョンは3.5です。あと、PDFの作成にあたってreportLabという外部ライブラリを使用しました。
PDFファイルの初期化部分
def createPDF(url,name): #A4サイズの定義 a4size = (21.0*cm,29.7*cm); #PDFファイルの設定 pdf = canvas.Canvas(name+".pdf"); pdf.setTitle(name); pdf.setSubject(name); pdf.setPageSize(a4size);
本文生成部分
#createPDF関数内 #本文の作成 counter = 0; while True: counter += 1; #画像読み込み try: image = ImageReader(url + "works/" + str(counter).zfill(4) + ".jpg"); except: #最後まで到達したので終了 print("生成終了"); break; #A4用紙の真ん中に来るように位置とサイズの調整 height = a4size[1]; width = image.getSize()[0] / image.getSize()[1] * a4size[1]; x = (a4size[0] - width) / 2; y = 0; #画像の貼り付け pdf.drawImage(image,x,y,width,height); #改ページ pdf.showPage(); print(str(counter)+"ページ目終了・・・"); #生成したPDFを保存 pdf.save();
reportLabのImageReaderに画像URLを渡しては描画して改ページ、を404エラーが出るまで繰り返してくだけのなんてことないプログラムです。
ツイ4の場合URL+/works/+0001から始まる連番.jpgが画像URLなので、forで回すだけで簡単に取得できました(8行目)。他のサイトだと物によっては画像URLをスクレイピングしてこなきゃで面倒かもしれない。
で、ツイ4の別の漫画で試しに生成してみた結果がこんな感じ。表紙はサイトの一番上にあるカバー画像を中央寄せして貼っつけてみた。(本文と大体一緒なのでコード割愛)
あとはこれをKindleにメールで送るコードがあるわけなんですが、残念なことにKindleがメールで受信できるファイル容量に制限があるせいでほとんど全漫画うまくいかず。しゃーないのでKindleをPCに繋いで手動で入れます。
というわけで出来ました。問題なく読めていい感じです。でも妄想テレパシーはせっかくの白黒とカラーの使い分けが全部白黒にされちゃうので悲しい。
課題
細い4コマ1個だと寂しい
画像の大きさで判定して1ページに2本貼り付けるようにした方がよさげ
表紙がKindle上で反映されない
これはちゃんとKindle本の形式にしないと無理そう。保留。
縦書きなのにめくる方向が横書きと一緒(普通の感覚と逆にめくる必要あり)
これもKindleでPDFファイルを開いた時の仕様なので・・・(ry
この投稿の写真に使った作品