
モジュールレポート(5):writePostscript
IAC Public Domain Software Module
Contents
はじめに
今回紹介する writePostscriptモジュールは表示結果をPostScript(Level 2)としてファイルに保存します。
PostScriptとは、Adobe社によって開発されたページ記述言語です。文字や図形をPostScript言語によって記述したファイルをPostScriptファイルといいます。
AVS/Expressには標準機能として、PostScript(level1,2)として保存する機能やベクターPostScriptファイルに保存する OutputVPSモジュールも提供されています。データの入力/可視化/印刷を同一ネットワークで行う場合には、OutputVPSを利用しますが、OutputVPSは制限事項が多いため、利用できない場合があります。
writePostScriptはラスター型のPostScriptファイルに保存するので制限事項はありません。
ダウンロード
IACモジュール用のAVS/ExpressプロジェクトをIACmodsと仮定します。
IACフリーソフトモジュールを初めてインストールされる方は、下記を参考にIACmodsプロジェクトを作成してください。
writePostscriptモジュールを以下のURLからダウンロードします。
writePostscriptについて、以下のように記述されています。
| Number | P0052 | Name | WritePostscript | Version | 1.0 |
|---|---|---|---|---|---|
| Path | iac_proj/wr_ps/ | ||||
動作確認環境については記載されていませんが、Sun(Solaris2.6),SGI(IRIX6.5)にて動くことを確認しました。
圧縮方法により三種類(tar+gz, tar+compress, zip)のダウンロード用ファイルが提供されているので、必要なファイルを IACmodsディレクトリ配下にダウンロードします。ここでは、wr_ps.tar.gz ファイルをダウンロードします。
ダウンロードしたファイルを展開します。
% gunzip -c wr_pr.tar.gz | tar xvf -
iac_projディレクトリに wr_prディレクトリが生成され、以下のファイルが展開されます。
| INSTALL | Vファイルのインストール方法 |
|---|---|
| README | コンパイル方法 |
| doc_mod.html | writePostscript部品モジュールのドキュメント |
| doc_umac.html | writePostscriptモジュールのドキュメント |
| wr_ps.c | ソースコード |
| wr_ps.v | マクロモジュール |
| wrpsmacs.v | writePostscriptを構成する部品モジュール |
| wrpsmods.v | writePostscriptモジュールの定義ファイル |
モジュール定義ファイルの設定
IACmods/iac_proj/iac_proj.v ファイルに以下の一行を追加します。
flibrary IAC_PROJ <cxx_name=""> {
"../iac_proj/wr_ps/wr_ps.v" WritePostscript;
};
IACmods/iac_lib/data_io.v ファイルに以下の一行を追加します。
flibrary DATA_IO {
IAC_PROJ.WritePostscript.WritePsMacs.writePostscript writePostscript;
};
writePostscriptにはサンプルVファイルも提供されているので、IACmods/iac_lib/examples.vファイルに以下の行を追加します。
flibrary EXAMPLES {
IAC_PROJ.WritePostscript.WritePsMacs.WritePostscriptEg WritePostscriptEg;
};
コンパイル
writePostscriptをコンパイルします。
コンパイルを行う場合は、環境変数 XP_PATH と MACHINE が設定されていることを確認してください。プラットフォームがSGIの場合は、以下のように設定します。
% setenv XP_PATH <インストールディレクトリ>/express
% setenv MACHINE sgN32
(注)環境変数 MACHINE に設定する値は、インストールプロダクト名です。
$XP_PATH/bin/xp_machを実行すると得られます。
IACmodsディレクトリに移動し、以下のコマンドを実行します。
% $XP_PATH/bin/$MACHINE/base -project . -comp_proc express -exit
モジュールの実行
IACmodsディレクトリに移動し、以下のコマンドを実行します。
% ./bin/$MACHINE/express -project . (for Developer user)
% ./bin/$MACHINE/express -viz -project . (for Viz user)
LibrariesメニューからIACを選択します。
DataIOカテゴリにwritePostscriptモジュールが登録されています。
writePostscriptモジュールをインスタンスし、以下のようなネットワークを作成します。

図1 ネットワーク例

図2 表示例
writePostscriptにはFieldデータを入力するので、OutputFieldを利用しています。
OutputFieldのコントロールパネルにて出力サイズを設定し、Outputボタンを押します。Outputボタンが押されるとFieldデータが出力されます。
writePostscriptモジュールのコントロールパネルを表示します。ファイル名を入力するとPostScriptファイルの出力が行われます。
評価
AVS/Expressに標準提供されている PostScriptファイルへの出力機能には
- OutputVPSモジュールを利用する方法
- コントロールパネルのPrint機能を利用する方法
の二通りがあります。
OutputVPSモジュールはイメージをベクトル形式のPostScriptファイルとして保存します。このフォーマットは解像度に関係なく、イメージを拡大/縮小しても画質が劣ることはありません。線や文字列を出力する場合に優れています。
ただし、OutputVPSには制限事項が多く、特に日本語文字列を保存できないという制限は大きなネックになります。
コントロールパネルにある Print 機能を利用すると紙サイズの指定や背景色の変更などを容易に行うことができます。可視化した表示結果をその場で印刷する場合には便利な機能です。ラスター形式のPostScriptファイルに保存されるので、画質が劣る場合もありますが、日本語文字列を出力することができます。
今回紹介した writePostscript もラスター形式のPostScriptファイルに保存されます。精度的には Print機能と同等になりますが、OutputFieldモジュールを利用しているために画面サイズを気にすること無く、大きなイメージを保存することができます。これによって解像度の高いイメージファイルを作成することができます。
それぞれに利点/欠点はありますが、必要に応じて機能を選んでください。
AVS Support Center, fns-avssup@cs.jp.fujitsu.com
