半角文字を全角文字で印刷する

私にとって、wordの唯一の欠点は全角で打てない文字があることです。しかし、全角、半角の区別は、印刷を考える場面でしか、個人的には問題にしません。大雑把に言えば、見栄えの問題だからです。というわけで、印刷時に半角文字を全角文字にできれば、それでO.K.です。で、そのやり方ですが、単純です。wordが吐き出してくれる印刷用のポストスクリプトファイルを直接編集します。


まず、?について見てみます。下記が、wordが出力する?を含む文書のポストスクリプトファイルの該当部分です。

/kochi-mT-EUC-H findfont 14 scalefont setfont
<a4db> show
/kochi-mT-EUC-H findfont 14 scalefont setfont
<a4a7> show
/kochi-mT-EUC-H findfont 14 scalefont setfont
<a4c3> show
/Times-Roman findfont 14 scalefont setfont
(?) show

単純に見てわかるように、

/Times-Roman findfont 14 scalefont setfont
(?) show

この二行が、半角の?をあらわしており、その他の

/kochi-mT-EUC-H findfont 14 scalefont setfont
<xxxx> show

は全角文字をあらわしています。ですので、半角を表している二行を全角の?と入れ替えてやるわけです。ここでは全角のフォントは

/kochi-mT-EUC-H findfont 14 scalefont setfont

です。要は、その下の<>でくくられたコードを?のコードにしてやればいいわけです。ちなみにポストスクリプトのコードは、通常のJISコード(16進数)に0x8080を足したものになります。?は、JISでは、0x2129なのでポストスクリプトでは、0xa1a9になります。よって、?は、

/kochi-mT-EUC-H findfont 14 scalefont setfont
<a1a9> show

となります。最終的に最初の例は、

/kochi-mT-EUC-H findfont 14 scalefont setfont
<a4db> show
/kochi-mT-EUC-H findfont 14 scalefont setfont
<a4a7> show
/kochi-mT-EUC-H findfont 14 scalefont setfont
<a4c3> show
/kochi-mT-EUC-H findfont 14 scalefont setfont
<a1a9> show

と書き換えることとなります。

コード表がない場合は、cannaの記号入力で調べることができます。cannaの記号入力時にひらくダイアログのすみに表示されている数字がJISのコードです。これに、0x8080をくわえてポストスクリプトでのコードを求めて下さい。

こうして書き換えたものをghostviewで見てみると、下の画像のようになります。右側が、書き換えていないもの、左側が書き換えた後のものです。

An image of sample ?



さて、上記の作業はまさに単純作業であり、こういう作業こそ、スクリプトでも書いてコンピュータにやらせるのがスジというものなのですが、それをやるんだったら、wordの方をなんとかするのがスジというものだし…、というわけで、この手の方向にはまだ、手をつけていません。まぁ、今のところ年に何度も使うわけでもないし、さほど手間も感じないので、とりあえず、GTK+のヴァージョンが上がったら解決しないかなぁ…、などという甘い期待をよせるだけにしておきます。


index.html  飛べ!ペンギン大王  ひとつもどる