KDP(電子出版)のメモ 急急如律令

Amazon Kindleダイレクト・パブリッシングでの電子出版や電子書籍の作成販売について、文章やイラストの作成や編集方法について書いています。

クライアントサイドJavaScriptでEPUBが作れるか調べてみた

 クライアントサイドJavaScriptで画像ファイルをzip圧縮はできるようなのでEPUBもできるんじゃないかなと思って調べてみることに。

 サーバサイドでEPUBを作れるサービスはよくあるが、漫画の場合はアップロード時間がかかる。ならばローカルで出来れば時間短縮になるが、他のOSでは動かないと対象は狭そう。別にjavascriptではなくてもjavaでも良さそうだが、MacだとかWindowsやスマホなどを考えるとブラウザで動ければ、大抵の端末で動くだろう。コマンドラインで操作しないだけでとっつきやすいと思う。さて、javascriptでEPUB作成は可能なのだろうか。

 ググったら、EPUBを作るjavascriptを見つけたがどうも規格が古そうだ。

d.hatena.ne.jp

 気になる問題点

  • javascriptでzip圧縮
  • フォルダの階層化
  • 画像ファイルの読み込みと保存

 調べているとJSZipでできそうかなと思った。試しに下のようなコードをJSZipのサイトのサンプルに入れるとepubみたいなファイルになる。当然中身は作っていないがファイル構造だけはできる。

var zip = new JSZip();
zip.file("mimetype", "application/epub+zip");
var meta = zip.folder("META-INF");
var container = zip.folder("OPS");
var img = zip.folder("OPS/images");
img.file("smile.gif", imgData, {base64: true});
zip.generateAsync({type:"blob"})
.then(function(content) {
// see FileSaver.js
saveAs(content, "example.epub");
});

 

stuk.github.io

 

 ローカルファイルをいったんブラウザに読み込んで、jszipを使ってアーカイブする方法を考えると。FileAPIを使って読み込ませるとそれらしくなる。こういう方向性で作ってみようと思う。

Make KMZ

 

nt-book.com