JIS bdf -> gdr プリプロセッサ

Author: TSUMURA,Tomoaki
Created: 2005/01/31
Modified: 2006/06/28

自分で変換するなんて面倒なことやってられない! という人はこっちへ。

はじめに

Shinonome
東雲12

Symbian SDK に含まれる fnttran は,Unicode BDF から gdr を生成するための ツールです。これを用いることで,Series60 端末向けの 追加フォントおよび置き換えフォントを 作成することができます。しかし,好みの JIS BDF から Unicode BDF を 作成するのは,それなりに手間がかかります。

本ページでは,fnttran の前処理を行う script を公開します。 これを使うと, 日本語BDF,半角カナBDF,半角英数BDF から,fnttran で処理可能な Unicode BDF に変換することができ,手間が軽減できます。 また本 script は,fnttran で Unicode BDF を処理する際に必要となる gd ファイルも,同時に自動生成します。

免責

現段階での仕様

開発中です。 バグ報告等いただけると幸いです。

Table of Contents

> What's New?
更新履歴です。
> 必要なもの
フォント作成に必要となるツールおよびソースの説明。 プリプロセッサもここでダウンロード可能。
> 準備
フォント作成のための準備。
> 使い方
プリプロセッサの使い方と,フォント作成の具体的な手順。
> bdf2gdr.pl オプション一覧
プリプロセッサで使用できるオプションリファレンスです。
> フォントのインストール・アンインストール
作成したフォントを実機上にインストール・アンインストールする手順。
> 絵文字について
702NKの絵文字についての免責。
> 謝辞
お世話になったプログラム等。

What's New?

2006/06/28
SYMBOL24.HEX を公開。 目視による確認だけ行っており,実機上では未テストのため bug が混入している可能性があります。
2006/01/31
bdf2gdr.pl v.3.12:
2005/08/30
bdf2gdr.pl v.3.11:
2005/06/30
bdf2gdr.pl v.3.9: -n により指定された名前から LatinPlain/LatinBold 互換フォントと判断した 場合,グリフサイズを適切に設定するよう小手先対応。 例えば 12dot の bdf を入力として -n LatinBold13 を指定した場合, SIZE および FBBX の height を 13 に設定します。
2005/06/02
bdf2gdr.pl v.3.8: DoCoMo 絵文字用「-d」オプション追加。;-p
2005/03/29
bdf2gdr.pl v.3.7: 「-JP」オプションを指定した際に,bdf の bbx の高さが 12未満の場合 絵文字が表示されなかったのを修正。現在のオプション一覧を掲載しました。
2005/03/11
SYMBOL??.HEX: U+301C を追加しました。 メール本文等で「〜」が表示されなかったバグが解消されます。
2005/02/25
bdf2gdr.pl v.3.6: 「-JP」オプションを指定した際にできる gdr に無駄があったのを修正。 JapanPlain16/JapanPlain12 に全く同じフォントを使うかたは,別々に作成 するよりも「-JP」を使うほうがメモリ容量が 200kB 前後節約できます。
2005/02/23
bdf2gdr.pl v.3.5:

これ以前の更新履歴...

必要なもの

bdf2gdr.pl
プリプロセッサ (→ダウンロード)
Perlの実行環境
ActivePerlなど
Symbian SDK
これに含まれる fnttran が必要。Forum NOKIA から download 可能。
マッピングテーブル
Unicode 順に変換するために必要です。JIS0208.TXT (日本語用)JIS0201.TXT (半角カナ用)
記号用フォント
efont-unicode-bdf から,702NK に必要な記号文字をいただいたデータ。 SYMBOL10.zipSYMBOL12.HEXSYMBOL14.HEXSYMBOL16.HEXSYMBOL24.HEX。 最低限必要なのは,変換しようとする bdf フォントと同サイズのもの。 なくても,記号文字が表示できないだけで変換は可能。 入力 bdf が記号グリフを持っている場合は,そちらが優先されます。
日本語,半角カナ,半角英数 の 3つの BDF ファイル
変換したい BDF ファイルを用意してください。 FONTBOUNDINGBOX の高さが揃っていることが必要です。 以下の説明では,それぞれ jis.bdf (日本語), rk.bdf (半角カナ), ascii.bdf (半角英数) というファイル名であると仮定します。

準備

Symbian SDK と Perlの実行環境をインストールしておいてください。fnttran と perl にはパスが通っている必要があります。

の全てを同じフォルダに置き,コマンドプロンプトでそのフォルダに移動したのち 作業してください。

使い方

bdf2gdr.pl による処理

bdf2gdr.pl は,fnttran で gdr フォントを作成する際に必要となる Unicode BDF と GD ファイルを生成するスクリプトです。以下は実行例です。 引数には, オプション日本語 (JIS0208) BDF フォント半角カナ (JIS0201) BDF フォント半角英数 (ISO8859-1) BDF フォント を指定します。

半角カナBDFが半角英数文字を持っている場合,半角英数BDFは省略することが できます。半角英数BDFを指定した場合は半角英数BDFが優先して半角英数文字に 使用されます。

システム置き換えフォントを作成する場合

オプションに 「-16」あるいは「-12」を指定すると, 702NK/NOKIA6630 のシステムフォント JapanPlain16/JapanPlain12 の 置き換えフォントとして作成できます。 絵文字の表示にも対応します。たとえば「-16」を指定すると, JapanPlain16 に対する置き換えフォントが作成できます。その際,入力として 与える BDFフォントは 16dot よりも小さくても構いません。

perl  bdf2gdr.pl  -16  jis12.bdf  rk12.bdf  ascii12.bdf

上記のようにして JapanPlain16 および JapanPlain12 に対する置き換えフォントを それぞれ個別に作成することもできますが,JapanPlain16/JapanPlain12 の両方に 同じフォントを使用したい場合は,「-JP」オプションが使えます。

perl  bdf2gdr.pl  -JP  jis.bdf  rk.bdf  ascii.bdf

追加フォントを作成する場合

オプション -n を使って 文字列を指定してください。default値は「MyFont」です。

perl  bdf2gdr.pl  -n MyFont  jis.bdf  rk.bdf  ascii.bdf

fnttran による処理

上記の処理により,Unicode 順で merge された BDF と GD ファイルが 生成されます。以下はメッセージ例です。

##################################################
 End of Preprocess
##################################################

        You've got unicode bdf `21114.bdf' and gd file `21114.gd'.
        The UID of the font is [71678673].

        Okey, now run
        -------------------------------------------
        fnttran 21114.bdf 21114.gd MyFont14.gdr
        -------------------------------------------
        and you will get `MyFont14.gdr' font file.  enjoy!

個人使用を前提としていますので,UIDはランダムに生成した値が使われます。 あとはメッセージに従い,fnttran を実行することで,gdr ファイルを作成できます。 なお,生成される BDF および GD ファイルの名前は実行のたびに異なります。 メッセージに表示された通りに fnttran で処理してください。 出力ファイル名は例では MyFont14.gdr となっていますが,任意に 指定できます。ただし,bdf2gdr.pl で「-JP」オプションを指定した場合は, 必ず「Japan.gdr」というファイル名にしてください。

fnttran  21114.bdf  21114.gd  MyFont14.gdr

bdf2gdr.pl オプション一覧

プリプロセッサで使用できるオプションを解説します。

-16 / -12 / -JP
702NKのシステムフォントを生成する際に使用します。-16 を指定すると JapanPlain16 互換フォントを,-12 を指定すると JapanPlain12 互換フォントを 生成します。これらを指定した場合は,絵文字は 16dot で表示されます。 -JP は,入力として与えた bdf を JapanPlain16/JapanPlain12 の両方に 使用したいときに指定します。-JP を指定した場合は,絵文字は 12dot で 表示されます。
-p / -pp / -pa
入力として与えた bdf の各グリフに存在する左右の空白を取り除くことで, 字間が詰まった表示にすることができ,一覧性が向上します。-p を指定した 場合は,句読点や罫線文字などの左右余白は削除しません。これらの文字も 強制的に余白削除したい場合は,-pp を指定してください。-pa を指定した 場合,ASCII文字に対してのみ空白を取り除き, 日本語フォントは等幅のままにします。
-n fontname
作成するフォントの名前 (ID) を指定します。なお,システム互換フォントを 作成する場合は,フォント名は強制的に JapanPlain12/JapanPlain16 と設定 されます。
-a
プリプロセッサによる処理の後,本来であれば fnttran を手動で実行することで .gdr を作成する必要がありますが,-a を指定することで fnttran を自動的に 実行させることができます。 「プリプロセッサが生成した .bdf および .gd を手で調整したい」という 場合以外は,-a を指定することによって .gdr の作成までを自動的に行えるので, 手間が軽減します。

フォントのインストール・アンインストール方法 (702NK/NOKIA6630)

インストール

Windows上で,どこかに System\Fonts\ というフォルダ構造を作り, 作成した .gdr ファイルをこの Fonts フォルダの中に置きます。 そして,PC Suite などで System フォルダごと E: などにコピーします。 コピーが終了したら,デバイス (702NK/NOKIA6630) を再起動してください。

注意: 特に欧文システムフォント (「Al」から始まる名前を持つもの) を 置きかえる場合,702NK のシステム自体が起動しなくなることがあります。 他の場合でも,万一に備えてフォントのインストール先は C: ではなく E: (MMC) とすることをお勧めします。 E: にしておけば,何かあった場合でも MMC を抜いた状態で 702NK を 起動することで復旧が可能となります。

アンインストール

FExplorer などのアプリを使って .gdr ファイルを削除すればいいのですが, 「使用中です」などのメッセージにより,そのままでは削除できません。以下の 手順を踏むことで削除できます。

  1. .gdr が格納されている Fonts フォルダを,別名 (以下では Fonts.bak としますが,何でも可) にリネームする。
  2. Fonts.bak の中の当該 .gdr を削除する。
  3. Fonts.bak を Fonts という名前に戻す

あとは端末を再起動してください。

絵文字表示について

Vodafone 絵文字は,各文字に文字コードが割当てられています。 702NKでは,メールおよびウェブ表示の際,これらの文字コードの文字の上に 絵文字を重ねうちする形で,絵文字を表示しています。 当プリプロセッサでは,この仕組に基づき,作成する置き換えフォントに, 絵文字に対応する文字コードを持つ空白文字を含むようにしています。 これにより,空白文字に重ねうちする形で,702NK は絵文字を表示しています。

すなわち,当プリプロセッサでは 絵文字と同じ文字コードを持つ空グリフをフォントに含めているにすぎず, 絵文字データの 抽出およびデータ変換などの操作は,一切行っていません。 よって,作成されたフォントにも絵文字データは一切含まれておらず, 絵文字の所有権・使用権に抵触するものではありません。

謝辞

このプリプロセッサの作成には,efontプロジェクトによる hex2bdf (efont-unicode-bdf に同梱), および 1@2ch 氏による bdfmerge (モナーフォントに同梱) のコードを参考にさせていただきました。記号文字のグリフデータは, efont-unicode-bdf の各フォントから頂きました。

また,「Vodafone 702NK (Nokia6630) vol.28,vol.29」スレでは, 多くの名無しさんたちの動作報告を読ませていただき,参考にさせて いただきました。特に 空白文字と改行文字のコードを発見された vol.28 の 777 氏, 10dot の外字を自ら作成された vol.29 の 104氏 (ぐらとらいだー 氏) には敬意を表します。ありがとうございました。

参考にしたサイト


Y.A.S.D.
© 2005 津邑 公暁 / TSUMURA,Tomoaki <tsumura@tomo.gr.jp>