Hatena::ブログ(Diary)

ネバーバード日記

2013-04-20

EBookDroidからブックマークを取り出す方法

自宅の技術書を自炊してNexus 10で読んでいます。お気に入りのPDF ReaderはEBookDroidです。これは表示が軽快ですし、PDFファイルの余白を自動的に取り除いて表示してくれ機能(Crop pages)があるので、自炊したPDFを読むのに重宝しています。

私は紙の本を読むときには赤ペンでアンダーラインや余白にメモを書く派なので、電子の本でも読みながらノートをとりたくて仕方ないのですが、EBookDroidにはブックマークはできてもノートを記録する機能がありません。そこで、ノートの代わりにEBookDroidブックマークのタイトルをメモ代わりに使っています。以下は「ドメイン駆動設計」のブックマークを表示させたところです。

f:id:neverbird:20130420180905p:image

たくさんブックマークを記録するとそれをファイルに落としたくなります。EBookDroidのアプリ設定ファイルは、私のタブレットの/storage/emulated/0/.org.ebookdorid/backupsの下にAUTO.20130420.163904.jsoのようなAUTO.*.jsoという形式のファイルとしてバックアップが格納されていましたので、そこからブックマークを抜きだすことにします。このファイルの内容のブックマーク部分を抜粋すると以下のようになります。

     "books": [
        {
          "exposure": 100,
          "splitPages": false,
          "offsetY": 0,
          "animationType": "SLIDER2",
          "offsetX": 0,
          "zoom": 100,
          "lastUpdated": 1366443265155,
          "autoLevels": false,
          "nightMode": false,
          "pageAlign": "AUTO",
          "contrast": 100,
          "bookmarks": [
            {
              "offsetY": 0,
              "page": {
                "docIndex": 48,
                "viewIndex": 48
              },
              "offsetX": 0,
              "name": "モデルは情報を体系化するためのツール"
            },
            {
              "offsetY": 0,
              "page": {
                "docIndex": 49,
                "viewIndex": 49
              },
              "offsetX": 0,
              "name": "コードは納品されても知識はついてこない"
            },

眺めてみると各ブックマークの名前は"name":の行に書かれているようなのでその行だけを抜き出してみます。

cat AUTO.20130420.163904.jso | grep "\"name\":" | awk -F":" '{print $2}'
 "Waterfallの問題"
 "モデルは情報を体系化するためのツール"
 "コードは納品されても知識はついてこない"
 "UMLは概念の意味を伝えられない"
 "オブジェクト指向のブレークスルーはソフトウエアがモデルを表現するとき"
 "モデル駆動はただ一つのモデルを使う"
 "ソフトウエア開発はすべてが設計"
 "コードを変更するとモデルも変わる"

こうやってブックマークの名前を集めてみると、それは単なるブックマークというだけでなく自分が本を読んで得ることができた「エッセンス」になります。なんでこんな面倒なことをするの?っていう声が聞こえそうですが、それができるのは本自身に魅力があるからです。

トラックバック - http://d.hatena.ne.jp/neverbird/20130420