富士通長野システムエンジニアリング

  1. ホーム >
  2. 製品 & サービス >
  3. [研究開発] >
  4. AVS >
  5. モジュールレポート - writePostscript
トップ 製品概要 事例 ソリューション サポート & トレーニング 体験版CD-ROM 動作環境 価格 技術情報/FAQ お問い合わせ お見積もり ダウンロード リンク集

モジュールレポート(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