2008年02月19日

Vista と 外字

今回は外字のお話です
XPまでは外字エディタのメニューがあり直ぐに起動できましたがVistaにはメニューが存在しません。

で、外字エディタは無くなったのかというとプログラムは存在します。
c:\windows\system32\eudcedit.exe ですね
メニューへの登録の仕方は情報が溢れているので割愛します ほほほ

外字を扱うに当たってVistaには問題が存在します。
フォントの中にmingliu.ttcというtrue typeコレクションが存在し、その中のMingLiu_HKSCSという中国語フォントが外字と同じコードを使用しています。
又、OpenOfficeをVistaにインストールするとOpenSymbol.ttfという外字と同じコードを使用するフォントも追加インストールされます。

メモ帳などのソフトでは文字自体にフォント情報は含まれないため、予め書式>フォントで設定していたフォントでリンク表示され外字は不具合無く表示されます。

ところが、マイクロソフトOFFICEやOPENOFFICEでは上記の各フォントがそれぞれ優先されユーザーが作成した外字は文字化けして表示されない、印刷できない等の不具合に遭遇します。
http://support.microsoft.com/kb/930276/ja
上記のフォントを使わないのであればTTFファイルへのアクセス権限を変更してリネームし使用できないようにすれば一応の解決にはなります。

今回は、一時しのぎでは無くて既存の外字ファイルをTrueTypeフォントとして作成し自PCだけではなくて他のPCでも利用できるようにする方法です。勿論更新も簡単に出来なくては意味がありません。

外字エディタを起動し1文字でも作成すれば、c:\windows\fontsフォルダに
EUDC.TTE
EUDC.EUF
の2つのファイルが作成されます。通常はエクスプローラーでは表示されず起動時に読み込まれ守られています。
但しコマンドプロンプトからは、その存在を確認することが出来ます

dir /p c:\windows\fonts

で、キーを押す毎にページが更新され途中でファイル名をみることが可能。
このファイルはUSBメモリなどへコピーは可能です(USBメモリのドライブレターがd:\の場合)

copy /y c:\windows\fonts\eudc.* d:\

上記でコピーしたEUDC.TTEをダブルクリックでフォント名EUDCを確認できますが
VistaからはEUDC.TTFとリネームしないと確認できません。
フォント名はファイルの中に埋め込まれており例えファイル名をZUDC等と変更してもフォント名はEUDCのままです。
そこで、バイナリエディタを使用すればフォント名を変更できますが手動でやっていたのでは簡単ではありませんね。

バイナリ

EUDC.TTEファイル内のフォント名が書かれているアドレスはXPとVistaでは少し違っていますが、それぞれのアドレスは不変なので自動で修正するツールを探したらありました。

FireFlower3.exe

このツールのおかげで、自動でフォント名を書き換えるバッチファイルを作成する事ができました。

XPの場合は自動でフォント名"ZUDC"というTTFファイルを作成しfontsフォルダにコピーされ各OFFICEソフトから利用できます。
Vistaの場合はフォルダにコピーでは反映されないので作成されたZUDC.TTFを右クリック>インストール にて反映されます。

EUDCZUDC



ファイル置き場から外字フォルダにツールZUDCTTF.ZIPを置きました
解凍してreadme.txtを読んでお使いください。

ZUDCTTFフォルダ

XP機の場合はChangeXP.cmdのみで反映
Vista機の場合はChangeVISTA.cmdで作成されたZUDC.TTFを右クリック>インストールにて反映
OSによって実行コマンドを間違えないようにしてください
各OFFICEソフトでの外字の挿入はreadme.txtを読んでくださいね。
フォントの削除はエクスプローラー上からc:\windows\fonts内のZUDC.TTFを削除でOK

外字を追加作成した場合、上記操作で上書き反映されます
他PCでの利用はZUDC.TTFを
XP機ならばc:\windows\fontsにコピー
Vista機は右クリック>インストール
で、他PCでもフォント名"ZUDC"としてOFFICEソフトで挿入する事ができます。

他PCの外字エディタに取り込みたい場合はエディタ起動後、参照元にZUDC.TTFを選択すれば無問題ですね メデタシ、メデタシ おほほほ