« 2014年10月 | トップページ | 2015年10月 »

2014年11月26日 (水)

RTFDをWindows対応に変換するApple Scriptを作ってみた

先日の [概要] の結果を踏まえて、RTFD変換Apple Scriptを作ってみた。

画像が貼り付けられている Mac OS X 独自形式の RTFD を、Windows でも画像が表示される RTF に変換するスクリプトである。

ついでに、ヒラギノなどの日本語のフォントをMS Pゴシックなどの Windows 用フォントに変換することも行っている。

なお、RTF を変換対象にした場合は、単にフォントの変更だけを行う。

テストは Yosemite 上でしか行っていない。他のバージョンの OS X 上での動作は確認していない。

使用方法は、以下に掲載するスクリプトをスクリプトエディターにコピー&ペーストして実行する。頻繁に使用するならメニューバーにスクリプトメニューを表示させてそこに登録するとか、コンパイルしてアプリ化すれば良いだろう(筆者はメニューバーに表示している)。

なお、当スクリプトは無保証である。当スクリプトを使用して生じた損害に対し、作者はいかなる責任も取らないので悪しからずご了承願いたい。

続きを読む "RTFDをWindows対応に変換するApple Scriptを作ってみた" »

2014年11月24日 (月)

RTFDをWindowsで開けるように変換[概要]

([追記]:下記の作業を自動で行うスクリプトを作成したので、そちらも参照していただきたい)


ここでは、RTFD パッケージ内に内包されている画像データはJPEGであるものとする。

Finder 上で変換元の RTFD パッケージの内容を表示し、まず中の画像データ(gazou.jpg)を16進数形式に変換する。コマンドライン上で以下を実行する。

$ hexdump -e '39/1 "%02x" "\n"' gazou.jpg > hexdecimal.txt

テキストエディターで hexdecimal.txt を開いてみると、最終行に半角スペースが最小で1つ、最大で77つくっついていることがある。それらは削除してもしなくてもよい。

次に、RTFD パッケージ内の TXT.rtf をテキストエディターで開き、

{{ NeXTGraphic gazou.jpg \width3480 \height820
} }\

などとなっている部分を

{\pict\jpegblip\picwgoal###\pichgoal### ←ここに半角スペース※
(データ)
}

に置き換える。(データ)部分には上記の hexdecimal.txt の内容(数十行ないし数百行に及ぶ長大なデータ)を入れる。

注意!\pichgoal### の後、改行の前に半角スペースが必要!

「\picwgoal###\pichgoal###」の ###部分にはそれぞれ画像の横幅と縦の長さが入るが、元の \width3480 \height820 の数字はなぜか本来のピクセル数の20倍の数字が入っている(上記の例では実際には 174 x 41 pixel の画像が挿入されている)。そして ### に入れなければならないのは本来のピクセル数の15倍の数である。結果的に、元の数字の4分の3の数値が入ることになる。上記の例で言うと、「\picwgoal2610\pichgoal615」となる。

なお「 \picwgoal###\pichgoal###」を省略してしまうとうまく表示されないので必ずつける。

以上。

こうすれば、TXT.rtf を Windows 上で開いても画像が表示されるようになる。例えば、Word で開いて Word 形式で保存すれば、間接的だが rtfd → doc などの変換も可能である。また、TXT.txt を Mac 上で LibreOffice によって開いても画像が正しく表示されるので、それをさらに Word 形式に変換するという方法もある(但し、フォントの調整は必要)。

※画像の前後の改行がうまく反映されない場合がある。その時は、TXT.txt 内の u8232 という文字列を line に置き換える(画像付近の u8232 だけを置き換えても、全てを置き換えても可)。

« 2014年10月 | トップページ | 2015年10月 »