JEPAの「いまさら聞けない電子書籍のABC ~ebookpedia~」の下書きです。最終版は、JEPAのページをご参照ください。
電子ドキュメント内の文字情報は文字コードを使って表されるが、文字コードだけでは文字の形は分からない。文字コードをもとに文字の形を描画するにはフォントを使う。電子ドキュメント作成時にフォントのデータを内部に含めることを「フォント埋め込み」という。フォントを埋め込んだ電子ドキュメントを配布すれば、受け手は埋め込まれたフォントを使って文字を可視化できるので、例えば太字、丸文字など、ドキュメント作成者の意図した形で文字を表現できる。
フォントの所在
モバイル機器、PCなどの機器(デバイス)で、電子ドキュメントを可視化するにはデバイス・OS・リーダアプリなどに装備されているフォントのデータを使うのが普通である。Webフォントという、インターネット上のフォントサーバーからフォントのデータを入手して表示する技術も普及し始めた。
アウトラインフォント
デジタルフォントでは文字の形をグリフという。フォントは、一定のデザインのもとに作成した多数のグリフの集合である。一つの文字コードに対して複数のグリフが用意されている文字も沢山ある。もっとも成功したデジタルフォントであるアウトラインフォントはグリフを曲線で描画する。この描画パラメータをグリフデータという。OpenTypeのようなインテリジェントなフォントは、グリフデータに加えて、文字コードからグリフデータへの対応表、縦書・横書などでのグリフの切替表、ある文字を表示したとき、次の文字をどこに表示するか決めるためのグリフの各種寸法、配置すべき位置に関するデータ(フォントメトリックス)などの付随データをひとつにまとめて提供している。
電子ドキュメント作成時のグリフの扱い
電子ドキュメントを作成するとき、グリフの扱いを大きく分けると次の3通りになる。
① 電子ドキュメントに文字コードのみを含め、グリフデータは含めない(フォント埋め込みなし)
② 電子ドキュメントに、グリフデータを含める(フォント埋め込み)。
③ フォントからグリフデータを取り出し、グリフを描画する線画データに変換してから電子ドキュメントに埋め込む(アウトライン化)。
アウトライン化は特殊な用途なので除外し、以下では、①フォント埋め込みなしと②フォント埋め込みについて、a. 表示の違い、b. PDFとEPUBの埋め込み方法を比較しながら説明する。
フォント埋め込みの有無による表示の違い
受け手が電子ドキュメントを表示するとき、フォント埋め込みがないときとあるときでの相違を簡単に説明する。
(1) フォント埋め込みなし電子ドキュメントの表示
電子ドキュメントの表示アプリケーションは、デバイスやアプリなどがもつフォントを使う。電子ドキュメントの中で指定されているのと同じフォントが使えないときは、類似のフォントを使う。表示に使うフォントが文字コードに対応するグリフをもっていないとき、持っていてもグリフの形がオリジナルを作成したフォントと違うときは文字を正しく表示できない。また、多くの場合、フォントが違うとフォントメトリックスが異なるので作成時と文字の配置が変わり、レイアウトが崩れてしまう。
(2) フォント埋め込みあり電子ドキュメントの表示
フォントを埋め込んだ電子ドキュメントは、埋め込まれたフォントを使って表示すれば、文字の形や配置が変わることなく、作成時のレイアウトを再現できる。但し、表示アプリケーションによっては正しく再現できない。これはアプリケーションの責任である。
PDFとEPUBのフォント埋め込み方法の比較
PDFとEPUBでは、フォント埋め込みの技術的な仕組みは相当に異なる。次にそれぞれの仕組みを簡単に説明する。
(1) PDF
PDFは文字の位置を正確に指定する機能を備えている。そこでPDF作成ソフトがPDFにフォントを埋め込むとき、PDF作成ソフトはテキスト中の文字コードからレイアウトされたグリフIDにする。必要なグリフデータはPDF中の共有リソースとして保存される。そしてグリフIDから文字コードへの対応表(ToUnicodeCMAP)も作成する。中には、ToUnicodeCMAPを作成しないPDF作成ソフトもあるが、このようなPDFでは文字を検索したり、テキストの読み上げ、テキスト取り出しができない。このようにPDFのフォント埋め込みではフォントの中のグリフデータだけを使うので、それをPDF以外に転用するのは困難である。
(2) EPUB
EPUBのコンテンツ文書はXHTMLであり、テキストは文字コードで表される。EPUBのリーダーはフォントを使ってコンテンツを可視化する。このためEPUBのフォント埋め込みはフォントファイルの形式で埋め込む必要がある。具体的にはWebフォントと同じ方式で、CSS3の@font-face規則でフォントの属性とフォントのパスを記述する。Webフォントとの相違は、EPUBのフォント埋め込みではフォントファイルを自分のパッケージ内に含めるのに対して、Webフォントはフォントの存在をURLで示す点である。
サブセット化・難読化
フォント埋め込みのオプションについて説明する。
(1) サブセット埋め込み
電子ドキュメント作成時にフォントを埋め込むとき、フォントの中の全ての文字ではなく、その電子ドキュメントで使われている文字のみに絞ってグリフデータを埋め込むことをサブセット埋め込みという。日本語は文字数が多いのでフォントのサイズが大きい。サブセット化するとサイズを大幅に圧縮できるので、日本語のフォント埋め込みではサブセット化が重要である。PDFのサブセット埋め込みでは使われているグリフデータだけ集めれば良いが、EPUBのサブセット埋め込みはEPUB作成の度にサブセットフォントを作成する必要がある。Webフォントでも指定されたフォントファイルを丸ごとダウンロードするのではなく、フォントサーバーでダイナミックにサブセット化するのが普通なので、技術的には同じである。
(2) 難読化
EPUBのフォント埋め込みではフォントファイルの形式で埋め込むため、フォントを取り出してEPUB表示以外の目的につかうことも難しくない。目的外利用を抑制するため、フォントファイルの内部を解読し難くすることを難読化という。EPUB作成時にフォントが難読化されると、EPUBリーダーではそれを解読して読む必要がある。このため難読化に関しては作り手と消費側で合意が必要であり、EPUB3.0の仕様書には難読化のアルゴリズムやキーの使い方を規定している。
埋め込みとフォントの権利
フォントはプログラムとして著作者の権利が認められている。フォントを埋め込んだ電子ドキュメントの作成・頒布は、フォントの一部または全部の複製と再配布に該当するので、原則として著作権者の許諾が必要である。
PDFが登場したのは1990年代の後半であるが、当初はフォントを埋め込まないPDFは読み手の環境によっては正しく表示できないという問題による誤解や混乱が見られた。フォント・ベンダーによってはライセンス契約に埋め込み許諾・制限・不許可を記載している。しかし、PDFを作成するにあたって、ユーザーがいちいちフォント・ベンダーの許可を確認するのは面倒である。そこでOpenTypeにはフォントファイルに「埋め込み許可フラグ」が設定されており、PDF作成ソフトがそのフラグをみて埋め込みできるかどうか判断するという枠組ができている。また、1998年には日本タイポグラフィ協会は「電子ドキュメントデータへのフォント埋込み機能に対する タイプフェイス/フォントの権利保護に関する声明書」[1]で秩序ある埋め込みを許容する方向を示すなど、フォント埋め込みが幅広く使えるようになっている。この結果、どこでも、だれでもPDFを正しく表示できるようになった。このようにPDFの普及にあたってフォント埋め込みが果たした役割は大きい。
EPUBへのフォント埋め込みを許諾するかどうかはフォント・ベンダーによって方針が異なるようだ。またフォントファイルの「埋め込み許可フラグ」がEPUBを想定しているかどうかも不明である。こうしたことでEPUBのフォント埋め込みはまだ普及していない。フォント埋め込みが普及すれば、特殊な文字や外字などをイメージファイルとして表す必要がなくなるし、さらに文字による表現力が豊かになる。フォント埋め込みの普及を期待したい。
[1] 電子ドキュメントデータへのフォント埋込み機能に対する タイプフェイス/フォントの権利保護に関する声明書
〇Facebookで頂いたコメント
〔宣伝〕CAS-UBは、EPUB、PDFへのフォント埋め込みに対応しています。PDFはサブセット埋め込みのみです。EPUBはフルセット埋め込みとサブセット埋め込みの選択に対応しています。難読化は未対応です。