Posts from the ‘ePub’ Category

2010/07/23

WordPress – Download ePub プラグイン

by ctrans

WordPressのエントリをePubに変換し、ダウンロードできるようにするプラグインを作成しました。

ダウンロード:Download ePub プラグイン( download-epub.zip )

システム要件

圧縮にPEARのFile/Archive.phpを利用しているため、同パッケージを使える必要があります。

設置方法

サーバ側の設定

  1. Download ePubプラグインのフォルダをサーバのpluginフォルダにアップロードします。
  2. プラグインのフォルダ内にあるskeleton/OEBPSフォルダの属性を777にします。
  3. wp-content/uploads内にepubというフォルダを作成し、属性を777にしてください。
  4. wp-content/uploads/epubフォルダに以下を記した .htaccess を置きます(MIMEタイプの設定です)。
  5. AddHandler application/epub+zip .epub
    AddType application/epub+zip .epub
  6. ePubにフォントを同梱したい場合は、download-epub/skeleton/OEBPS/fontsにフォントをアップロードし、download-epub/skeleton/OEBPS/style.cssを適宜編集します。

WordPressの設定

ダウンロード用のリンクを挿入する場所を決めて下さい。たとえば利用しているテーマのsingle.phpを開き、適当な位置に

< ?php if(isset($ePub)) $ePub->ePublisher(); ?>

を挿入します。このタグはページが表示される際に

<div class="epub"><a href="%s" target="_blank">Download ePub</a></div>

というePubをダウンロードするためのリンクに変換されます(このリンクは任意の形式に変更できます。下記「設定項目」を参照して下さい)。

設定項目

download-epub.phpの32行目から37行目までが設定項目です。

$this->ePub_dir → 作成したePubファイルを保存するディレクトリ
$this->ePub_url → ePubが保存してあるフォルダのURL
$this->ePub_author → ePubの作者
$this->ePub_publisher → ePubの出版者
$this->ePub_language → ePubで使用している言語
$this->ePub_anchor_template → ePubダウンロード用アンカータグのテンプレート

32行のディレクトリは、デフォルトの「get_option(‘upload_path’) . “/epub”;」から変更する必要はありません。33行のURLは32行のディレクトリと等価ですが、「メディア」の設定で「アップロードするファイルの保存場所」を変更している場合、デフォルトの「get_option(‘siteurl’) . ‘/wp-content/uploads/epub/’;」では正しく動作しません。設定に応じて適宜修正して下さい。

アンカータグのテンプレートは、初期状態では
<div class=”epub”><a href=”%s” target=”_blank”>Download ePub</a></div>
となっています。「href=”%s”」以外の部分は変更可能ですので、お好きなように編集して下さい。

設置例

当サイトでは、使用しているテーマのsingle.phpを編集し、

<h1>< ?php the_title(); ?></h1>

となっていたところを、

<h1>< ?php the_title(); ?>< ?php if(isset($ePub)) $ePub->ePublisher(); ?></h1>

とし、ダウンロード用のリンクを挿入しています。リンクは

<div class="epub"><a href="hogehoge.epub" target="_blank">Download ePub</a></div>

の形式で挿入されるため、テーマのcssには次のクラスを追加しています。

.epub {
	float: right;
	background-image: url("../images/epub.png");
	background-repeat: no-repeat;
	background-position: center left;
	margin:0 15px 0 15px;
	padding-left:20px;
	font-size: 11px;
	font-weight: normal;
}

各エントリのタイトルの横にePubをダウンロードするためのリンクが本のアイコンとともに表示されていると思います。その見栄えを定義しているのが上のePubクラスです。[1]

次にフォントについてですが、日本語のフォントとしてIPAモナーP明朝(ipamp-mona.ttf)、中国語のフォントとして文鼎(Arphic)の簡体字宋体フォント(gbsn00lp.ttf)をプラグインのフォルダの plugins/download-epub/skeleton/OEBPS/fonts に加えています。

このフォントを使うため、plugins/download-epub/skeleton/OEBPS/style.css には次のような定義を加えています。

@font-face {
  font-family: "ipampmona", serif;
  src: url(fonts/ipamp-mona.ttf);
}
@font-face {
  font-family: "AR PL SungtiL GB", serif;
  src: url(fonts/gbsn00lp.ttf);
}
body {
  font-family: "ipampmona", serif;
  margin: 3%;
}
p {
  line-height: 150%;
  font-family: "ipampmona", serif;
  text-indent: 1em;
}
.cn {
  font-family :"AR PL SungtiL GB", SimSun, STSong, STKaiti, serif;
}

このプラグインの仕様および注意事項

このプラグインは、ページが表示される際にそのエントリに対応するePubファイルが存在するか否かをまずチェックします。もしまだ作成されていなければ、タイトルや本文を取り出してePubに変換し、wp-content/uploads/epub のフォルダに保存します。その後、ブログ内の指定された位置にアンカータグを挿入します。

Download ePubタグの挿入場所はsingle.phpをおすすめします。ePubファイルを作成する処理は、それほど重いものではありませんが、作成する数が多いとそれなりに時間がかかるため、index.phpなどに設置すると表示されるエントリの数だけePub作成処理が実行されます。作成処理が実行されるのはePubが存在しない1回目だけですがご注意下さい。

ePubのファイル名は、エントリのID+更新日時のタイムスタンプで構成されています。このことから予想がつくと思いますが、エントリの更新を行うと、ePubファイルもあらためて作成されますので、細かい修正を繰り返すとePubの保存フォルに同じようなファイルがたくさんできます。

バージョン0.1現在、圧縮まわりに不具合が残っています。今後修正する予定ですが使用する際はご注意下さい。

  1. 現在プラグイン停止中です。 []
2010/06/25

ePub版「故郷」の作成と日中混在の注意点など

by ctrans

最近話題の電子書籍を自分でも作成してみたかったので、3年ほど前に訳した魯迅の故郷に少し手を入れてePub形式にしてみた。ePubはXHTMLとCSS、フォント、画像をひとつのフォルダにまとめてZIPで圧縮したようなファイル形式なのでホームページを作ったことのある人間であれば、割合簡単に作成することができる。実際の成果物については以下のリンクからダウンロードしてePub用の適当なビューワで閲覧されたい。個人的にはAdobeのDigital EditionsかSONYのReader Library Softwareが使いやすいと思う。

ダウンロード:故郷 (ePub版)

ePubを作成するためのオーサリングソフトには、当初よく紹介されているsigilを使っていたのだが、日本語周りに問題があるようなので、途中から国産のFUSEeを使用した。現在公開されているのはベータ版でヘルプファイルなども用意されていないが、画面の構成を見れば使い方はなんとなく分かった[1]

fusee-epub

ePubには複数のフォントを同梱することができる。今回題材に選んだ「故郷」に登場する「」という漢字は、日本語のフォントには含まれていないため、簡体字用のフォントを追加しておかないと正しく表示されない。日本語のフォントもデフォルトのままだと読む気がなくなるので、コンテンツにマッチし、かつライセンス的にも気軽に利用できるフォントを追加しておいた方が良い。私は日本語のフォントとしてIPAモナーP明朝を選んだ。ePubにしたときに読みやすくおすすめである。簡体字中国語のフォントは、文鼎(Arphic)提供の簡体字宋体フォント(AR PL SungtiL GB:フォントファイル名はgbsn00lp.ttf)がファイルサイズがコンパクトで良い。日本語や中国語のフォントはどうしてもファイルサイズが大きくなるので、それを埋め込んだePubファイルも大きくなってしまう。20MBという目眩がしそうなサイズの中国語フォントもそれほど珍しい存在ではないので、見栄えの良いコンパクトなフォントは貴重である。

関連:文鼎のフォントのダウンロード先[2]
read more…

  1. 表紙のPNGファイルがちゃんと表示されないなあ、とtwitterでつぶやいたら中の人が速やかに対応して下さった(感謝) []
  2. 簡体字の宋体と楷体、繁体字の明体と楷体の4つをダウンロードできる。ライセンスはArphic Public License。ミラーサイトは http://ftp.yz.yamagata-u.ac.jp/pub/GNU/non-gnu/chinese-fonts-truetype/ []