« April 2015 | Main | June 2015 »

May 26, 2015

Kobo電子書籍リーダー用epubファイルの作成

Koboの電子書籍リーダーに実装されているepub用のレンダラーは2種類あり、そのどちらが使われるかは、電子書籍ファイルの接尾子(.epubか.kepub.epubか)で判断されているようです。

原則的には、.kepub.epub用の方が優れているはずなのですが、それぞれに下記のような欠点があり、単にファイル名に.kepubを足せば幸せになれるというものでもありません。

.epub用の問題点
・page-progression-directionを認識しない(縦書きの本のページめくりの方向を、横書きのものの逆にできない)
・language=jaでも日本語フォントを使わない(リュウミンとかを指定してやる必要がある)
・縦書き表示が変

.kepub.epub用の問題点
・reflowableのepubの場合、画像だけのページでも四方の余白がそれなりに大きい(ChainLPで作成したepubを.kepub.epubにしただけでは、「全画面表示」がどうしても実現できない)
・reflowableのepubの場合、idタグを埋め込まないと、ファイル単位でしか読書位置を記憶しない(たとえば、epub内部のファイルが章単位でまとめられている場合、ある章の途中まで読んで本を閉じると、次に開いたときにその章の冒頭に戻っている)
・カバー画像の指定としてEPUB3方式(itemリストでproperties="cover-image"を指定)しか認識しないので、ファイル自体はEPUB2であっても、カバー画像の指定はEPUB3方式で行う必要がある。

動作の機敏性などを考えると、.kepub.epub用を使うのが良いようですので、既存のepubファイル(もちろん、DRMなどはかかっていないものに限ります)を変換するスクリプトを考えてみました。cygwin上で動かすことを考えています。要pythonです。

1) ChainLPで作成したepubファイルの変換(mksvg.shとmksvg.py)
・EPUB3の固定形式を指定
・各ページをSVGに変換

これには直接関係ないですが、Kobo Touchは、3bppや4bppのPNGが表示できないようです(Kobo Gloはできる)。ChainLPの設定に注意が必要みたいです。(私のKobo Touchには3.16.0のファームが入っているので、そのせいかもしれません)

2) reflowableなepubファイルの変換(cnvkepub.sh, addid.py, cvrsed)
・中に含まれるすべての(x)htmlファイルについて、<p>タグと<br>タグ(または<br />タグ)の直後にタグを加え、そのタグにid="kobo.1.1"のようなidを付加する。
・opfファイルのitemリストからカバー画像らしきものを選び出し、properties="cover-image"を付加する

ファイルをすべて同じ場所に置き、2つのシェルファイルを編集して冒頭にあるTOOLSがその場所を指すように修正してください。

シェルファイル 対象となるepubファイル

で動くはずです。

ただし2)のカバー画像抽出には限界があるので、koboリーダーにコピーしてみて表紙画像が表示されないようなら、手でopfファイルを編集する必要があります。その際、カバー画像のファイルに付けられたidに一般性があるようなら、cvrsedに登録しておきますと、以後同じものが出てきたときには自動で処理されます。

「mksvg.sh」をダウンロード

「mksvg.py」をダウンロード

「addid.py」をダウンロード

「cvrsed」をダウンロード


「cnvkepub.sh」をダウンロード

| TrackBack (0)

タブレットのディスプレイの大きさ

Kindle Fire HD (2012)にCyanogenmod 12を入れたので、既に持っている8インチのAndroidタブレット(LaVie Tab S)と似たような環境を、7インチのタブレット上に構築することができました。

そうやって比べてみると、自分の嗜好としては、電子書籍を読むのに8インチは少し大きすぎる、と感じていることを自覚しました。

# この辺は完全に個人の感覚なので、他の方の参考にはなり得ないですが。

タブレットだとバックライトのせいで読書に集中できない、と思っていたのですが、7インチならけっこう没入感があるので、画面の大きさは重要のようです。私の場合は5~7インチが良いようです。

あらためて感じましたが、Kindle Fireのディスプレイは美しいですね。また、これはたまたまですが、8インチタブレットとドット数が同じだったので、7インチの方が締まって(美しく)見えた、ということもあるとは思います。

ただし、アメコミ(Comixologyというアプリを使っています)の場合は、最低でも8インチは無いと、部分拡大を使わずに読むのは難しく、この点では8インチ(以上)が必須と思います。

何となく、の感想ですが、androidのアプリの多くにとっては8インチは大きすぎるのかもしれません。8インチの画面を活かすなら、Windowsの方が良いかもしれないです。

| TrackBack (0)

May 23, 2015

Kindle Fire HD 7 (2012) にCyanogenmod 12を導入

2012年版のKindle Fire HD 7を持っているのですが、最近のAndroidタブレットと比べると、肝心のKindleアプリに「コレクション」機能がない、とか、不足に感じる部分が出てきました(当然、最近のFireタブレットならそんな問題はありません)

ということで、カスタムファームウェアを載せることに挑戦してみました(どうせなので、Android5準拠のCyanogenmod12を試しました)。

# 決して何かをお勧めしたり、保証したりするものではないです。というか、かなり危険です。

手順は大きく分けると3段階あります。

(1)android SDKの導入とKindle用ドライバのインストール
(2)ルートの取得
(3)ブートローダーの書き換え、ファームの書き込み

いずれも先駆者の成果を参考にするわけですが、問題は、参考となるページが書かれた時点から状況が変わってしまっていることが多々あるという点です。

(1)android SDKの導入とKindle用ドライバのインストール

http://developer.android.com/sdk/index.html に行き、下の方のOther Download OptionsのSDK Tools Onlyから自分の使っているOSのものをダウンロードし適当なフォルダに展開する。
・中にあるSDK Managerを起動。“Tools”メニューから”Manage Add-on Sites…”を選択。
・“User Defined Sites”のタブを選択し、”New”ボタンをクリック。
・http://kindle-sdk.s3.amazonaws.com/addon.xml と入力し、”OK”ボタンをクリック(このアドレスが、最近変わったようです)
・選択できる項目が増えるので、”Android SDK Platform-tools”と”Kindle Fire USB Driver”を選択し、”Install 2 Packages…”ボタンをクリック(Kindleのドライバについては使用条件の受諾が求められるので、acceptする)。選択済みの項目はたぶんオフにしても大丈夫
・SDK Managaerは終了してよい。“extras”フォルダ内にamazonフォルダが作成され、その中にkindle_fire_usb_driver”のフォルダが作成されているので、その中のKindleDrivers.exeを実行(この後は普通のドライバインストールと同じです)
・ドライバインストール後に一度PCを再起動

(2)ルートの取得

Root_with_Restore_by_Bin4ryを取得し展開(このあと、stuff以下にあるadbをandroid SDKのplatform-toolsにあるadbで置き換える、という手順を示しているページがありますが、今はこれは必要ないようです)
・Kindleの設定(「その他」→「セキュリティ」)でadbを有効化する
・Kindleを接続して、RunMe.batを実行。最初のメニューでの選択は"New Standard ~"を選ぶのが良いようです。(ここも古い情報では"Normal"と"Unroot"しか選択肢がないのですが、最近のはやたらと選択肢が多いです)
・本体の操作を求められるステップがあるので、コマンドプロンプトのメッセージは注意して読んでいく必要があると思います。
・終了時にSuperSUがインストールされるという情報がありますが、最近のRoot_with_Restoreではそうならないようです。(rootがとれているかどうかの確認は、コマンドプロンプトで"adb shell" → "su"でプロンプトが#になることを確認するのが良いと思います。抜けるときは"exit"→"exit"です)

(3)ブートローダーの書き換え、ファームの書き込み

基本的に http://haruroid.moe.hm/blog/?p=169 の手順に従いました。

私はfastboot画面に入ったあと、PCからのアクセスができなくなってあせりました。
接続状態でドライバの再設定をします。
デバイスマネージャ → ドライバーソフトウエアの更新 → コンピュータを参照して~ → コンピュータ上のデバイスドライバの~
で認識されるようになりました。

また、上記のページにはTWRP実行中はADBが動いていると書いてあるのですが、私の場合はそうはなっていませんでした。(TWRPのバージョンの問題かもしれません)
ですので、ファームウェアやGappsのファイルはあらかじめKindleにコピーしておくのが良いかもしれません。

| TrackBack (0)

May 07, 2015

Kobo Touch ファームウェア 3.11.0 のこと、その他

1. ファームウェア3.11.0をKobo Touchに入れると、デフォルトの日本語フォントが表示されなくなる、という情報がありますが、epub3のビューア(ファイル名に.kepub.epubを付けた場合)にはそんな不具合はありません。epub2のビューア(ファイル名に.kepubが無い場合)はたしかにデフォルトで日本語のフォントが表示されませんが、これは以前にもあった不具合と思います(ひょっとしたら3.8.0では直っていたのかもしれませんが)

2. ファームウェア3.11.0をKobo Touchに入れると、ファイルのspanタグにidを埋め込まなくても、読書位置を記憶するようになる、という情報があって試したのですが、私のではダメでした。なお、idは"kobo.数値"の形が必要のようで、"kobo"と数値の間のピリオドを省略したらうまくいきませんでした。

3. ライブラリ画面で、EPUB3形式の書籍の表紙画を表示するためには、opfファイルのmanifestの中で、表紙画像のitemタグにおいて、properties="cover-image"と記述する必要があります。これがEPUB3の仕様のようです。

| TrackBack (0)

« April 2015 | Main | June 2015 »