エントリー

2010年07月15日の記事は以下のとおりです。

KildleでPDFのメタデータはどう扱われるのか

 ここ数日,少しずつKindleDXの環境構築を進めています。

 なんとか持ち歩きに便利になるよう,KindleDXで出来ることと出来ない事をはっきりさせ,快適に使えそうな機能の洗い出しと,すっぱりあきらめるべきところを切り分けたいと考えて試行錯誤を続けています。

 現在解決の目処が立っていないのが,PDFのメタデータの取り扱いです。

 事の起こりは,青空文庫をPDFにオンラインで変換してくれるというありがたいサービス「青空キンドル」を使って作成したPDFを入れた時に,それまで出てこなかった著者名がローマ字で出ていたことを見つけたことに始まります。

 そういえば,プリインストールされていたKindleDXの説明書にも,著者名としてAmazon.comと出ていたことを思い出しましたが,なぜか自炊したPDFファイルには著者名が出てきません。

 きっと空欄になっているのだろうと,PDFのメタデータを確認すると,予想通り空欄になっています。そこでここに日本語で著者名とタイトルを書き込み,ワクワクしながらKindleに入れたのですが,結果は変わらず表示されません。

 なぜだ,この疑問が消えるまで試行錯誤がしばらく続くことになります。


(1)青空キンドルで作成したPDFではなぜ著者名が出ているのか

 青空キンドルで作成したPDFでは,半角アルファベットで著者名が出ています。一方タイトルは日本語ですが,これはファイルネームがそのまま,拡張子無し表示されているだけです。

 このファイルをBeCyPDFMetaEditで開いてみると,Authorに半角アルファベットで著者名が書かれています。ならばこれを日本語に書き換えて試してみると,著者名は出てこなくなってしまいました。


(2)再起動

 Kindleはフォントの入れ替えを行った際にも再起動しなければ変更が反映されません。本も同じ話らしく,キャッシュをクリアしないといけないとのことで,メタデータを埋め込んだ同名のファイルを上書きした場合,再起動がないと著者名が表示されないようです。

 結果,日本語でメタデータを書いたものは再起動後も著者名が出てきませんが,半角のアルファベットで書いたものは再起動後には著者名が出てきました。やはり再起動は必要なようです。


(3)メタデータが正しく埋め込まれているのか

 ある海外のblogによると,正しいメタデータが埋め込まれないとダメだとあります。当たり前の話ですが,ではその正しいメタデータの埋め込みとは,どうやって行えば良いのでしょうか。

 PDFのメタデータはAdobe Acrobatで書き込むのが確実なのでしょうが,そこそこ高価なアプリですのでどこにでもあるようなものではありません。私の場合,AcrobatとBeCyPDFMetaEditというフリーソフトと,定番のpdftkの3つを使ってみました。

 結果だけ書くと,どれも同じになりました。当たり前の話ですが,足下をすくわれたのは,Acrobatをインストールしたマシンでは,エクスプローラ上でプロパティを選ぶとPDFタグが現れ,ここでメタデータを編集できるのですが,実際には編集が反映されていないケースがあったようです。

 でも,そんなことが本当にあるのか,作業がややこしくなって変更前のファイルが混じってしまったんじゃないかなど,不確かなことも多いので,話半分と思っていてください。


(4)メタデータの文字エンコード

 ふと,メタデータの文字エンコードって実はなにを使ってんだろ?と疑問がわきました。KindleはUnicodeですので,もしメタデータの日本語がSJISなどで書かれていたら正しい表示は期待できません。

 そこで,pdftkを使ってメタデータを打ち込んでみます。pdftkでは,メタデータを別途テキストファイルに書いておく必要があるのですが,このテキストファイルをSJISとUTF-8の両方で作成し,それぞれで試してみました。

 出来上がったPDFをBeCyPDFMetaEditで見ると,UTF-8では正しく表示されているのに,SJISでは文字化けしています。予想通り,メタデータはUnicodeで書くべきもののようです。

 さっそくこのUTF-8でメタデータを書いたPDFをkindleに入れてみましたが,結果は残念なことに,なにも表示されませんでした。


(5)PDFのバージョン

 これも同じ海外のblogにあったのですが,Kindleでメタデータを反映させるには,PDFのバージョンが1.4以上でなければならないらしいのです。1.4というのはAcrobat5以降で対応可能なフォーマットなのですが,実はMacOSXのQuartzは1.3でPDFを生成します。ということは私が自炊したPDFは,メタデータが反映されないということになります。事実だとしたら結構深刻です。

 でこれは結論から言うとウソでした。

 1.3と1.4のそれぞれに,BeCyPDFMetaEditを使って日本語と半角アルファベットを著者名に埋め込んだファイルを用意しました。すると,1.3だろうが1.4だろうが,半角のアルファベットを埋め込んだ方は表示されたし,日本語を埋め込んだ方はどちらも表示されませんでした。

 
(6)タイトルはどうなの

 Authorについては,どうやら半角なら出てくるらしいとわかりました。ではTitleはどうかというと,これが不思議なもので,半角だろうと全角だろうと,メタデータからは表示されず,あくまでファイルネームの拡張子無しがそのまま出てきます。日本語のタイトルを付ければ,それがそのままタイトルとして列びます。


(7)フォントのせいではないのか

 日本語を含まないフォントを使っているから非表示なっているという可能性については,否定こそ出来ませんが,Kindleで使用するSans,Serif,Monospaceの3書体のうち,日本語を含まないフォントのままにしてあるのはMonospaceだけです。

 表示されている著者名のアルファベットを見ていると,およそMonospaceとは思えませんので,Monospaceを日本語を含むものにしたところで,解決しないと思います。


 とまあ,こんな具合です。

 すでにおわかりのように問題はとてもシンプルで,結局メタデータはAuthorだけが有効で,それも半角で書かれた場合のみ表示されるようです。タイトルはメタデータに関係なく,ファイル名から拡張子を除いたものがそのまま日本語だろうが何だろうが表示されます。

 しかし,google先生に聞いてみますと,「メタデータを日本語にすれば著者名も日本語で出るはず」という意見が見られる上,日本語は著者名では出ない,という記述が見当たりません。私だけの問題なのか,そういうものとあきらめるべき所なのか・・・

 さらにgoogle先生に聞いてみると,某巨大掲示板の過去ログに,同じ疑問で悩んでいる人がいて,どうも半角アルファベット以外は無効なデータとしてスキップするようになっているんじゃないだろうか,ということが書かれていました。

 うむー,ファイルネームに日本語が混じっていた場合,無効なデータとしてタイトルを空欄にすると,そのファイルへのアクセスが出来なくなってしまいますので,特にそういうフィルタを入れていないというのはなるほど分かる話で,メタデータのみに限定してフィルタを入れたというこの憶測は,あながち否定できません。

 まあどっちにしても,仕様であるかないかに関わらず,私と同じく著者名が日本語で出ないという人がいて,同時に日本語で出たという人が見当たらない現状では,最終的にPDFのメタデータを使って著者名を日本語で出す方法はない,という結論に落ち着きそうです。

 実は,Kindleは著者名でソートをかけられるので,著者名が出てきてくれるととてもありがたいのです。そこで,著者名は半角アルファベットで記述するという運用を行うことにしました。

 過去の自炊データも含めてすべてのPDFにメタデータを書くのはさすがに骨が折れるので,Kindleに入れることになったものに限定することとします。

 とにかく,BeCyPDFMEtaEditを使えばKindleに有効なメタデータを書き込むことが出来て,同じ名前のファイル名のものを上書きしても再起動すれば茶社名が反映されることが分かっていますので,あとは単純な作業をコツコツやるだけです。

 でも,やっぱり日本語にこだわる書籍だからこそ,著者名も日本人として,日本語で書かれたものを見たいものです。これを実現するにはフォントハックを改良し,著者名をメタデータから取ってくるときに,余計なフィルタを外すだけで済みそうな気もするのですが,私にそこまでの根性もあるわけはなく,さくっとあきらめることにします。

 最後の手段は,PDFをmobipocket形式に変換することです。MobiPocketCreatorというソフトが無償で公開されていて,これを使えば一応作る事ができるということなのですが,どういうわけだか私は一度もPDFからまともに変換できずにいます。手間もかかるし綺麗に変換できないので,メタデータのためにわざわざこの手順を開拓するのは,やめにします。

 さあ,あとは持ち運びのためのケースを考えれば,持ち歩きが可能になります。いろいろ考えていますが,いいものが出来たらここで紹介したいと思います。

ページ移動

  • 前のページ
  • 次のページ
  • ページ
  • 1

ユーティリティ

2010年07月

- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

検索

エントリー検索フォーム
キーワード

ユーザー

新着画像

新着エントリー

過去ログ

Feed