EPUBにおけるフォント埋め込みについて少し調べてみましたのでメモとして整理しておきます。
1.@font-face規則とフォント埋め込み
CSSではフォントリソースを指定する@font-faceルールが規定されている。@font-faceルールを使って閲読環境にないフォントリソースを指定しておき、そのフォントリソースをスタイルシートで利用することができる。EPUBではフォントリソースをEPUBファイルに同梱して、そのリソースを@font-faceで指定することでフォント埋め込みを実現している。
2.@font-face仕様の変遷
2.1 CSS2.0
@font-faceはCSS2.0で規定されている。
15.3.1 Font Descriptions and @font-face
2.2 CSS2.1
しかし、@font-face規則はCSS2.1で削除された。CSS2.1は@font-faceをサポートしない。
2.3 CSS3
@font-faceはCSS3で復活する。
CSS3仕様書:
CSS Fonts Module Level 3
http://www.w3.org/TR/css3-fonts/#font-face-rule
2.3.1 @font-face
@font-face {
font-family:ファミリー名;
src: url(上記ファミリー名フォントのリソースURI);
とするとダウンロード可能なフォントを記述できる。
ダウンロード可能なフォントはそれを参照している文書のみで利用可能とするべき。
ローカルフォントを使いたいとき
src: local(フォントフェース名);
3. EPUBの場合
3.1 EPUB2.0
EPUB2.0 Open Publication Structure (OPS)仕様では@font-faceルールを利用可能としている。次の記述子をサポートする。
・font-family
・font-style
・font-variant
・font-weight
・font-size
・src
3.2 EPUB3.0
http://idpf.org/epub/30/spec/epub30-contentdocs.html#sec-css-fonts
(4月19日現在)
EPUB3.0では、@font-faceルールをCSS3 Fonts に従って使うこととされている。
閲読システムは、最低限、次の記述子をサポートする。
・font-family
・font-style
・font-weight
・src
・unicode-range
4. フォントファイルの難読化
フォントファイルなにも細工しないでEPUBに同梱すると、EPUBはZIP形式なのでZIPを解凍してフォントファイルを取り出すことができてしまう。この防止のため、EPUBのファイル形式を定めるOpen Container Format(OCF)でフォントをそのままでは利用できないようにする難読化の方法が提案されている。
4.1 OCF2.0
Font Embedding for Open Container Format Files
http://idpf.org/epub/20/spec/FontManglingSpec.html
(日本語訳)Open Container Format ファイルへのフォントの埋め込み
http://lost_and_found.lv9.org/FontManglingSpec_ja.html
4.2 OCF3.0
EPUB Open Container Format (OCF) 3.0
「5 Font Obfuscation」の項
http://idpf.org/epub/30/spec/epub30-ocf.html#font-obfuscation
※このメモの内容は、cassupportの日記の(4/19)に書いた内容とおおよそ同じです。
http://d.hatena.ne.jp/cassupport/