【Python】Web漫画をPDF化してKindleで読む

2016-06-05 19.28.30

どうも。妄想テレパシー面白いですね。

で、面白いから先日買った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をスクレイピングしてこなきゃで面倒かもしれない。

python-kindle-bookmaker

で、ツイ4の別の漫画で試しに生成してみた結果がこんな感じ。表紙はサイトの一番上にあるカバー画像を中央寄せして貼っつけてみた。(本文と大体一緒なのでコード割愛)

あとはこれをKindleにメールで送るコードがあるわけなんですが、残念なことにKindleがメールで受信できるファイル容量に制限があるせいでほとんど全漫画うまくいかず。しゃーないのでKindleをPCに繋いで手動で入れます。

2016-06-05 19.39.35

というわけで出来ました。問題なく読めていい感じです。でも妄想テレパシーはせっかくの白黒とカラーの使い分けが全部白黒にされちゃうので悲しい。

課題

細い4コマ1個だと寂しい

2016-06-05 19.30.24

画像の大きさで判定して1ページに2本貼り付けるようにした方がよさげ

表紙がKindle上で反映されない

これはちゃんとKindle本の形式にしないと無理そう。保留。

縦書きなのにめくる方向が横書きと一緒(普通の感覚と逆にめくる必要あり)

これもKindleでPDFファイルを開いた時の仕様なので・・・(ry

この投稿の写真に使った作品

『妄想テレパシー』NOBEL | ツイ4 | 最前線
中野さんは、他人の心の声が視える女子高生。そのせいで知ってしまった人気者・戸田くんの脳内は、自分への妄想であふれていた……!

『トモちゃんは女の子!』柳田史太 | ツイ4 | 最前線
ボーイッシュな女子高生・相沢智(トモちゃん)は、幼なじみの久保田淳一郎に想いを寄せるが、どうしても「女」であることが伝わらない……。好きな男(ひと)に「女の子」として見られたい! 

『ノヒマンガ』ポン | ツイ4 | 最前線
読めば今日が「〜の日」と楽しくわかる、365日毎日更新の画期的記念日マンガ!


スポンサードリンク