トップ 最新 追記
RSS feed

ただのにっき


2011-03-28(月) [長年日記]

オライリーのebookから余白を除去して、Kindleで快適に読む方法

オライリーの被災者支援キャンペーンは大盛況のうちに終わったようで、最大で百数時間待ちになったようだ。おれが注文した3冊も昨晩遅くにようやく届いた。「同時にKindleを買うとどっちが先に届くだろう」なんて冗談を言い合っていたけれど、これはマジでKindleの方が早かったかも知れない。

それはさておき、買ったからにはちゃんと読みましょう(Kindleで)。ただし、紙の書籍をレイアウトそのままでPDFにしたものは、はっきりいって電子書籍端末では満足に読めないと思ったほうが良い。特にKindleをはじめ5~6インチの画面を持つ端末ではPDFの余白が極めて邪魔くさい。というわけで、これを除去してから読みたいものだ。

下のスクリーンショットはオライリーの「セキュリティの神話」を横向きにした表示したところ。上は買ったままのPDF、下は余白を削除することで文字の表示サイズを大きくしたもの。読みやすさは一目瞭然だ。

[スクリーンショット]余白除去前と除去後の比較

上のサンプルは幅15cmの書籍なので、余白を除去すれば(老眼に苛まれていない人は)縦持ちでも読めると思う。ただ、これが18cmの大型本になるとどういうことになるか、想像するまでもないだろう。というわけで、5~6インチ端末で書籍のPDFを読むにはこの余白除去加工が必須になる。

電子書籍端末向けにPDFを加工するには、テキストデータを抽出する方法や、PDFをそのまま加工(crop)する方法があるが、オライリーのPDFはDRMがかかっているのでいずれもうまくいかないようだ。ここは紙の書籍と同じ「自炊」の手法を使って加工することにする。画像化するのでファイルサイズは数倍に膨れ上がるが、あとからOCRをかければテキスト情報も扱えるようになる。

で、おれが自分で自炊するためにちまちまと整備してきた「自炊用Rakefile」がオライリーebookにもそのまま使える。Linux(たぶん他の*NIX OSでもOK)が必要だが、まぁオライリーで技術書を買うような人は自由になるLinux Boxのひとつやふたつは持ってるでしょ。

注意: このスクリプトは非常にCPUを食うので、電力事情の悪い関東地方の人は日中に走らせるのはやめよう。電力が逼迫していない夜間、寝てるあいだにブン回しておけばよろしい。

使い方はだいたい以下のとおり:

  1. 関連ツールをインストールする。rakeは当然だが、ヘッダに書いてあるパッケージが必要(Debianの場合。Ubuntuでもたぶん同じ)。
  2. PDFファイルと同じディレクトリにRakefileをコピー
  3. Rakefileの「SRC」の値をPDFのファイル名に書き換え
  4. rakeコマンドを実行

しばーらく待つと、カレントディレクトリに「元ファイル名.out.pdf」というファイルができているはず。ただし、指定したパラメタではきれいに余白が除去できていないかも知れないので、場合によっては下記の方針でRakefile中のパラメタをいじる必要がある。

  • 余白が残っている、または文字が切れてしまっている : TOP / BOTTOM / LEFT / RIGHTの数値を加減する。厳密である必要はなく、余白の自動認識のノイズになる部分さえカットできれば良い。pgmディレクトリに展開された元イメージの持つ余白のピクセル数を測ることでこの数値を見極められる。
  • 色が薄すぎる : カラーページの多い書籍の場合、文字の色が薄くなってしまう場合がある。通常はKindle側の設定でコントラストを高めれば十分だが、事前に濃いめにすることも可能。LEVELパラメタ(デフォルトで「0%,100%」)を「0%,100%,0.5」のように変えてみよう(末尾に足した数値はガンマ補正で0.0~1.0。小さいほど濃くなる。詳しくはImageMagicのマニュアル参照)。
  • 縦持ち向けにしたい、または他の端末向けに加工したい : 現在配布しているサイズ指定(SIZEの値)はKindleの横持ち表示の幅である「720」つまり幅720ピクセル(最終的な仕上がりは722ピクセル)になっている。「自分は目がいいから縦持ちでOK」とか「SONY ReaderやGALAPAGOSで読みたい」という場合にはSIZEの値を変更する。Kindle縦持ちの場合は「x735」(縦735ピクセル)に変更する。他の端末の場合は最適なサイズを自分で決めてね。

それでは、快適なKindleライフを!

Tags: kindle ebook

「オライリーのebookから空白を除去……」に関する補遺 : 主にメタ情報に関する追記

オライリーのDRMについて批判的なことを書いたらyomoyomoさんから容赦ないとか言われてしまったけど(笑)、実はおれもオライリーの編集さんと話をして、現在の状況がオライリー・ジャパンの(主に流通面での)特殊な立ち位置に由来することくらいは知ってはいるのである。

ただ、先の記事が事実上DRMを迂回する方法にもなっている、つまり、余白やノンブルだけでなく、せっかく膨大なCPU時間と貴重な電力をかけて埋め込まれた所有者のメールアドレスすらも削ってしまう上に、こうして生成された画像化PDFを再度OCRにかければテキストデータを取り出すこともできてしまう*1ことからして、IT技術者の手にかかればこの程度のDRMが無意味なことは明らかなのだ。しかもこの加工をするために今回新たにebookを購入した電子書籍端末のユーザが、各地でこのスクリプトを実行してさらに電力を消費するのだ。最初から(本家オライリーのように)PDFだけでなくEPUBやmobiでも公開しておけば回避できた浪費である。このご時世に(←伝家の宝刀「このご時世」)。

ということを(業界のしがらみなど知ったことではない)ユーザの立場からちゃんと指摘しないとダメでしょう、と思うのであえて空気を読まないんですよ、ワタシは。

それはさておき、オライリー・ジャパンのebookにはDRM以外にも重大な欠点があって、困ったことにメタ情報が設定されていない。PDFにはちゃんと書名や著者情報をメタ情報として設定できるのに、ebookのメタ情報は空っぽである。しかも編集不能なので、あとから自分のためにメタ情報を追加することもできない。

先のスクリプトでは最初のタスクでmetadata.txtというファイルが生成されて、これは元PDFのメタ情報を抽出し、あとから生成されたPDFに同じものを設定するためのものなのだが、ebookの場合ここには味気ないIDとページ数くらいしか入っていない。

もしメタ情報をちゃんと指定したいのであれば、手持ちのPDFから同様にmetadata.txtを抽出しておいて、それを編集してから再度rakeコマンドを実行すれば反映できる*2。Kindleの場合、書名はPDFのファイル名から採用されるが、著者名はメタ情報から取られるので(ただし英語のみ)、設定しておくと書名リストで表示される情報が増す。

もっとも著者名だけなら別にあとからAdobe Readerからでも設定できるからこんな手の込んだ方法をとらなくても良いのだが、ここでScanSnapで生成されたPDFから抽出したメタ情報を元ネタに使うとScanSnapユーザには別のメリットが生まれる。ScanSnapが生成したPDFにはgeneratorとしてScanSnapに関する情報が指定されているので、これを使い回すことでScanSnap付属のユーティリティでOCRをかけることができるようになるのだ(このツールはScanSnap由来のPDFでないとOCR処理を拒否するのである)。

という豆知識でした。

Tags: ebook

*1 テキストが抽出できてコピペできることは、書籍のプロモーションにバイラルが使いやすくなるという意味で、実は売る側にもメリットがあるはずである。

*2 もっとも日本語はUnicodeベースのよくわからないエンコーディングがされるようなので生で書いてはいけないようだ。調べてないけど。

本日のツッコミ(全5件) [ツッコミを入れる]

legoboku [面白い記事ありがとうございます。うちのMacbook(Mac OS X 10.6.7)でも試してみました。Kindl..]

hamanako [ubuntu10.10で使わせてもらいました! 素晴らしい……今日届いたばかりのKindleが大活躍です!ありがとう..]

ただただし [hamanakoさん、それは明らかにこちらの間違いです~。失礼しました、直しておきます。]

shinriyo [初めまして。オライリーの電子書籍の消化のためにKindle Paperwhiteを購入を検討しましたが、 空白が気に..]

ただただし [プロジェクトの最新ファイルはこちら(→https://github.com/tdtds/kindlizer )から入..]


2011-03-27(日) [長年日記]

「Parabolic Antenna Lovers!!」をOpen Graph Protocol対応にした

Facebookの「いいね!」ボタンをWebサイトに単純に設置しただけでは、それを押してくれたことが友達には伝わらない。自分のウォールに地味なアクティビティとして残るだけだ。これをちゃんと友達のニュースフィードに流しこむには、サイトをOpen Graph Protocol対応しないといけない。

いや、伝え聞きなんだけどね。参考記事は「フェイスブックのいいね!をサイトに追加するならこれはやるべき」。指定すべきタグについて具体的に書かれているのでわかりやすかった。さっそくParabolic Antenna Lovers!!をOGP対応にしてみた。

[スクリーンショット]OGP対応サイトで「いいね!」したところ

↑のように、各ページに置いてある「いいね!」ボタンを押すと、(ウォールではなく)ニュースフィードに情報が流れる。OGPで指定したものだけでなく、サイトの説明はmeta descriptionが使われるのはFacebookのWebインタフェースで「リンク」を貼る場合と同じだ(というか「リンク」機能もOGPを利用している)。SEO的な意味ではSERP上のスニペットとしてしか使われなくなったmeta descに、こういう用途が生まれたのはいいね。

ところでこの機能をtDiaryに入れるのは至難の業なんだけど、どうしたものやら。

Tags: facebook

2011-03-25(金) [長年日記]

オライリーのebookが今日いっぱい「半額」(ただし入手まで数十時間待ち)

オライリーが被災者支援キャンペーンでebookを半額提供中ということなので、Kindleで読みやすい幅15cm以内の本を何冊かみつくろって買ってみた。キャンペーンコードを入力しないと半額にならないので注意。

今月ちょっといろいろ買いすぎなんだけど、支援ならしかたがない……と思った人は予想以上に多かったらしく、現在配送待ちが61時間と出ていた。オライリーのebookはPDFに購入者のメールアドレスを埋め込んでいるので、一冊一冊べつべつに生成しなくてはいけないからだ。まぁ、支援ならしょうがない、気長に待とう。というか、こないだ買った『言語設計者たちが考えること』もまだ読み終えていないというのに。

今回のこのキャンペーンで初めてオライリーのebookを買った人も多いと思うけれど、たぶんコピペも印刷もできないという制約を知らなかった人も多いだろう。ちなみに本家オライリーではPDFだけでなくEPUBなど複数のフォーマットで、しかもDRMフリーでの提供なので、こういうひどい制約をかけているのはオライリー・ジャパンだけの悪習だ。せっかくなので今回購入した人は、こういう客を信用しない出版社にはちゃんと声をあげていこう。技術書に自己投資するような真面目な技術者向けの電子書籍にDRMは不要だ(と信じる)。


ところで今回の震災で紙の不足や配送網の寸断の影響から、「週刊アスキー」がPDF配布とか「少年ジャンプ」無料配信などの動きがあった。平時になったら元に戻ってしまうかも知れないけれど、これをきっかけに資源やインフラへの負担が少ない電子書籍・電子雑誌への動きが加速するといいなと思う(でもKindleでも読めるようにしてね!)。

そういえば同じタイミングでインプレスの電子雑誌「OnDeck 005号」も配信開始。有料化はしばらく見送り、無料配信を継続することにしたようだ。震災の影響を(ほとんど)うけることなくスムーズに発行され、そして即座に読者の手元に届くことの価値を、まざまざと見せつけられた気がする。ほんと、OnDeckはフォーマットや配信チャネルのマルチ化にもいろいろ挑んでいて、ちょっと目が離せない。

Tags: ebook

トップ 最新 追記
RSS feed