行データ変換をカスタマイズする

InfoPrintでは、行データ変換のカスタマイズに役立つサンプルのプログラミング出口が提供されています。プログラミング出口の使用はオプションです。出口プログラムの名前はinpexit, outexitresexitキーワードで指定します。各キーワードについては、RICOH InfoPrint Manager:Referenceまたはline2afp manページを参照してください。InfoPrintのサンプルユーザー出口、または独自のユーザー出口を使用し、着信データストリームをあるコードページから別のコードページに変換する場合は、INPCCSIDパラメーターは、着信データストリームのコードページを示します。OUTCCSIDパラメーターは、UCONVによる出力のコードページを示します。

注意: ICONV を使用するユーザー出口プログラムを作成した場合は、代わりに UCONV を使用するようにそのプログラムを変更する必要があります。詳しくは、RICOH InfoPrint Manager:Referenceを参照してください。

InfoPrintには、以下のサンプル出口が用意されています。

/usr/lpp/psf/acif/apkinp.c
入力レコード出口
/usr/lpp/psf/acif/apkout.c
出力レコード出口
/usr/lpp/psf/acif/apkres.c
リソース出口

また、InfoPrintでは、次のユーザー入力レコード出口で、行データのデータストリームを変換します。

/usr/lpp/psf/acif/apka2e.c
ASCII ストリームデータを EBCDIC ストリームデータに変換します。
注意: デフォルトの変換は、コードページ805からコードページ037です。inpccsid および outccsid パラメーターを指定して、デフォルトを指定変更できます。
/usr/lpp/psf/acif/asciinp.c
復帰文字と用紙送り文字が入っている不定様式 ASCII データを ANSI 紙送り制御文字が入っているレコードフォーマットに変換します。この出口は、ANSI 紙送り制御文字をレコードごとにバイト 0 でエンコードします。
/usr/lpp/psf/acif/asciinpe.c
不定様式のASCIIデータをasciinp.cが行うようなレコードフォーマットに変換し、ASCIIストリームデータをEBCDIC1ストリームデータに変換します。
/usr/lpp/psf/acif/dbblank
以下の場合に、ブランクを入力レコードの末尾に追加することで、z/OSスプールからダウンロードされたEBCDIC 2バイト行データを処理します。
  1. レコードの最後のバイトがブランク(EBCIDICのx'40')である。
  2. 最後から 2 番目のバイトがブランクではない
  3. 入力レコードは、構造化フィールドではなく、行データです。
また、この出口は、ブランクが追加されるとレコード長を 1 で更新します。この出口では、データがDBCSかどうかは判別されません。そのため、単一のブランクで終了するすべての入力レコードに対して、この処理が行われます。この出口では、入力データも出力データもEBCIDICであることが前提となります。言い換えれば、この出口はコードページ変換を行わず、必要に応じて単にブランクを追加するだけです。
    注意:
  1. この出口は、ブランクが切り捨てられた2バイトデータまたは1バイトと2バイトの混合データでスプールファイルが構成されている場合だけ使用することを目的としています。別のタイプのデータファイルにブランクを追加すると、ページ定義のコード化方法によって、フォーマットエラーが発生することがあります。
  2. この出口は、単一の末尾ブランクのみを検査します。そのため、それ以外の数の奇数ブランクがデータに入っている場合、正しいフォントでデータがフォーマットされていることを確認するのは、ユーザーの作業となります。

すべての行データ変換出口プログラム用に、次の C 言語ヘッダーファイルも使用されます。

  • /usr/lpp/psf/acif/apkexits.h
行データ変換ユーザー出口用に、次のビルド規則も使用されます。
  • /usr/lpp/psf/acif/Makefile

サンプル出口のソースコードは/usr/lpp/psf/acifにあります。このソースファイルを変更することも、独自のファイルを作成することもできます。出口をコンパイルしてビルドするには、XL Cコンパイラーと、AIXオペレーティングシステムのBase Application Development Toolkitのbos.adtコンポーネントをインストールしておきます。出口のコンパイル方法の例とし、/usr/lpp/psf/bin/Makefileを使用できます。

ユーザー出口プログラムをコンパイルする方法は、ユーザー出口プログラムをコンパイル/インストールするを参照してください。