kzhr's diary

ad ponendum

外字を使ってWordデータを送ってきたときのこと

今後役に立つか分らないが,備忘までに。

状況

  • Office XMLなWordデータ
  • EUDC.TTE + EUDC.EUF
  • どっかの.TTFデータ

ここでOffice XMLぢゃないとたいへんかも? 外字の使用場所がかんたんに分るなら可。今回は,論文で,縦横に使ってゐた(やめてほしい……)。

外字データを画像データに変換する

今回のデータはわたしからさらに編集者に渡すものであったので,外字データがあるとよからぬことが起きないともかぎらない。そこで,外字データを画像にしてできるだけ埋め込みたい。

Googleで検索したところ,.TTEなデータは拡張子を.TTFにすればそのままPUAにグリフの割り当てられたTTFになることが分った。本機はMacなので,さうでないと困る(また,作業用のWinもないではないが,いろいろあって管理者権限は持ってゐない)。グリフを眺めたところ,デザインがひどかったが,時間もないので目を瞑る。またGoogleで,TTFから画像にできないか調べたところ,fontforgeのExport函数でできることが分った*1

どういふわけか,このままではまったく動かなかったのだけれど,このとほりにするといろいろ不都合があった。

  1. まづ,[Glyphs Worth Outputting]では,PUAにまんべんなくグリフがあるわけではないのに,PUA全体が選択されてしまふ。それは[Glyphs with only Splines]を選択することで解消された。
  2. つぎに,みつけたコードがうまく動かなかった。あれこれ試した結果,"Export("svg")"ならともかく出力することが分った*2
  3. しかし,それをそのまま画像化すると,文字の下が切れてしまふ。バウンディングボックスがなにか変らしい。さいしょはInkscapeをわざわざ入れてちくちく直してゐたが,200点ほどあるので自動化する必要があった。viewboxがどうもをかしいと分ったので*3,"perl -p -i -e 's/<svg viewBox="0 -145 1024 1024">/<svg viewBox="0 0 1024 1024">/;" *.svg"でどうにかする。
  4. ここまでくればmogrify*4。"mogrify -geometry 50x50 -format png *.svg"。ごちそうさまです。

なほ,どっかの.TTFデータも同様の手法で変換。こちらは*5この論文のためのものではなく,ぜんぶ扱ってしまふとまたよからぬことがあるので,どこで使用するか確認しなければならない。

Wordで使用した文字を確認する

.docxなwordデータは,zip圧縮されたファイルなので,解凍すれば中身が読める。あとはフォント名を頼りにリストアップ! がんばれ!!

できたデータをもとにperlで要らないファイルを消しました。ordが10進数で文字コードを返すのがゑぐかったです*6

Word XMLを書き換へる(失敗)

.docxなwordデータは,(中略)なので,画像を埋め込むのは難しくても,画像化したどのグリフを埋め込めばいいか分るやうにするくらゐの書き換へはできるんぢゃないかと思っていろいろやってみたが,どうにもうまくいかないのであきらめた。Mac OS Xだといらないファイルを勝手に付け足したりするので*7,それが原因なのかもしれないが,よく分らない。かといって,Wordではどの文字がどの文字コードかなど分らないので,XMLデータを眺めつつ,画像を埋め込むといふ非常にローテクなことをして作業完了。

*1:# Export all font elements to image with FontForge # # Usage # # 1. Open font wi - Pastebin.com

*2:いまにして思へば,"png"とかでもよかったのだらうか?

*3:"<svg viewBox="0 -145 1024 1024">"ってどういふことなのか。

*4:mognifyって覚えてた。謎w

*5:ひろく見れば外字データも使はない文字があるのだが

*6:ゑぐくはない

*7:Windowsがお行儀がばっちりなわけではないが,相対的に。