[前へ] [次へ] [目次]


EB ライブラリの特徴

前に述べたように、EB ライブラリは、電子ブック (EB, EBG, EBXA, EBXA-C, S-EBXA) と EPWING 形式の CD-ROM 書籍に対応しています。

EB ライブラリは、これらの CD-ROM 書籍に対して、次の処理を行うことが できます。

この章では、EB ライブラリの概要に関して、あらかじめ知っておいて頂いた ほうが良いと思われるその他の事柄について、何点か説明します。

ヘッダファイル

EB ライブラリには、いくつかのヘッダファイルが用意されています。

appendix.h
appendix (付録) に関連した宣言、定義を行う。
binary.h
バイナリデータに関連した宣言、定義を行う。
eb.h
EB ライブラリの基本ヘッダファイル。
error.h
エラーコードに関連した宣言、定義を行う。
font.h
外字に関連した宣言、定義を行う。
text.h
テキストデータ (本文、見出しなど) に関連した宣言、定義を行う。

これ以外にもいくつかのファイルがインストールされますが、上に挙げた ヘッダファイルから読み込まれるもので、アプリケーションプログラムが 直接読み込む必要はありません。

アプリケーションプログラムは、EB ライブラリを使う際にこのヘッダファイル をファイルの先頭付近で読み込みます。

#include <eb/eb.h>
#include <eb/error.h>

eb.h ではなく、eb/eb.h を読み込むようにして下さい。

文字コード

EB ライブラリでは、CD-ROM 書籍内のデータを文字列にしてアプリケーション に渡す際の文字コードを規定しています。

EBG (海外の電子ブック) については、データが ISO 8859-1 (ラテン文字 1、 ただし制御文字を除く) で書かれているため、データのやり取りも ISO 8859-1 で行います。 ただし、外字だけは 2 バイトで表現し、0x0101 〜 0x1efe の領域を使用します。 (外字領域の下位 16 ビットは 0x01 〜 0xfe の範囲を使用します。)

EBG, EBXA-C を除いた電子ブック、および EPWING については、データが JIS X 0208 (日本語のかな漢字) で書かれており、JIS X 0208 を 0x2121 〜 0x7e7e にマッピングし、0xa121 〜 0xfe7e を外字領域にしています (下図)。

                上位8ビット

         00 21    7e a1    fe
       00┌──┬─────┬──┬─────┬┐
         │  │     │  │     ││
       21├──┼─────┼──┼─────┼┤
         │  │     │  │     ││
         │  │JIS X│  │ 外字  ││
         │  │0208 │  │     ││
         │  │     │  │     ││
       7e├──┼─────┼──┼─────┼┤
下位8ビット   │  │     │  │     ││
       a1├──┼─────┼──┼─────┼┤
         │  │     │  │     ││
         │  │     │  │     ││
         │  │     │  │     ││
         │  │     │  │     ││
       fe├──┼─────┼──┼─────┼┤
         └──┴─────┴──┴─────┴┘

EB ライブラリでは JIS X 0208 部分を日本語 EUC (EUC-JP) にエンコード して、アプリケーションとのやり取りも日本語 EUC で行います。 したがって、JIS X 0208 部分は 0xa1a1 〜 0xfefe にマッピングされます。

EBXA-C (中日・日中辞書の電子ブック) については、データが JIS X 0208 (日本語のかな漢字) と GB 2312 (中国語の簡体字) で書かれており、 JIS X 0208 を 0x2121 〜 0x7e7e にマッピング、 GB 2312 を 0x21a1 〜 0x7efe にマッピングし、 0xa121 〜 0xfe7e を外字領域にしています (下図)。

                上位8ビット

         00 21    7e a1    fe
       00┌──┬─────┬──┬─────┬┐
         │  │     │  │     ││
       21├──┼─────┼──┼─────┼┤
         │  │     │  │     ││
         │  │JIS X│  │ 外字  ││
         │  │0208 │  │     ││
         │  │     │  │     ││
       7e├──┼─────┼──┼─────┼┤
下位8ビット   │  │     │  │     ││
       a1├──┼─────┼──┼─────┼┤
         │  │     │  │     ││
         │  │GB   │  │     ││
         │  │2312 │  │     ││
         │  │     │  │     ││
       fe├──┼─────┼──┼─────┼┤
         └──┴─────┴──┴─────┴┘

EB ライブラリでは、アプリケーションとのやり取りに使う文字コードは、 日本語 EUC および中国語 EUC (EUC-ZH) です。 したがって、そのままでは JIS X 0208 と GB 2312 が 0xa1a1 〜 0xfefe に マッピングされ、衝突してしまいます。 この問題をどう回避するのかは、アプリケーション側で決める必要があります (詳しくは、「フックと文字コードの関係」 を参照のこと)。

電子ブック、EPWING ともに、外字については、アプリケーション側でどう 扱うかを決める必要があります。 外字について詳しくは 「外字」 を参照のこと。

圧縮された書籍について

EB ライブラは、データを圧縮して収録した書籍を扱うことができます。 今のところ、次の 4 種類の圧縮方法に対応しています。

ebzip 圧縮形式
EB ライブラリ独自の圧縮形式です。 付属の ebzip コマンドを使うと、この形式で圧縮した書籍を作れます。
EPWING V4, V5 形式
市販の EPWING V4, V5 の書籍の一部に、この形式で圧縮したものがあります。
EPWING V6 形式
市販の EPWING V6 の書籍の一部に、この形式で圧縮したものがあります。 EPWING V4, V5 形式の改良型です。
S-EBXA 形式
市販の S-EBXA の書籍の一部に、この形式で圧縮したものがあります。

データの伸長は EB ライブラリ側で自動的に行われるため、 アプリケーションプログラムからは、アクセスしている書籍が圧縮されているか どうか分かりません。 アプリケーションプログラムは、書籍が圧縮されているかどうかで処理を変える 必要はありません。

遠隔ホスト上の書籍について

バージョン 4.0 から、EB ライブラリは他のホストの書籍にアクセスできる ようになりました。

遠隔アクセスの処理はすべて EB ライブラリ側で行われますので、 アプリケーションプログラムは、書籍が自分のホスト上にあるかどうかで、 EB ライブラリの呼び出し手順を変える必要はありません。

ただし、他のホストからアクセスすると、処理速度は非常に遅くなります。 そのため、効率良く処理できるよう、アプリケーションの処理方法を工夫すべき 状況が生じることはあるかも知れません。

システムの要件

アプリケーションプログラムのコンパイルに用いるコンパイラには、 ANSI (ANSI X3.159-1989, ISO/IEC 9899-1990) 対応のものを対象としています。 また、システムには POSIX.1 (IEEE Std. 1003.2-1990, ISO/IEC 9945-1:1990) 準拠ないし互換のものを対象としています。

永らく EB ライブラリでは、古いコンパイラや UNIX 系システムへの対応も それなりに行われていましたが、バージョン 4.1 からは対応を打ち切っています。 特に ANSI 対応のコンパイラは必須ですので、ご注意ください。


[前へ] [次へ] [目次]