pioformat コマンド

目的

プリンター・フォーマッターを始動します。

構文

/usr/lpd/pio/etc/pioformat -@ DataBaseFile [ -! FormatterName ] [ -# + PassThroughOption ]

説明

pioformat コマンドは、プリンター・フォーマッター・ドライバーを開始します。 フォーマッター・ドライバーは、データベース値へのアクセスを設定し、プリンター・フォーマッターをロードしてリンクし、次にフォーマッターの setup 関数、initialize 関数、lineout 関数、passthru 関数、および restore 関数を適宜呼び出すことでフォーマッターを始動します。 フォーマッター・ドライバーは、フォーマッターが使用する piogetopt サブルーチン、piogetstr サブルーチン、pioexit サブルーチンも提供します。

以下のフラグは、フォーマッター・ドライバーが処理し、フォーマッターに渡されることはありません。ただし、以下にリストされていないすべてのフラグがフォーマット化フラグとして想定され、フォーマッターへ渡されま す。

フラグ

項目 説明
-@ DataBaseFile 以下のいずれかを指定します。
  • アクセスする (要約された) データベース・ファイルの絶対パス名。
  • コロンで区切られた印刷キューおよびキュー・デバイス名。

引数文字列が / (スラッシュ) 文字で始まる場合、絶対パス名であると想定されます。

キューの名前とキュー・デバイス名を組み合わせると、データベース・ファイル名の一部である固有文字列になり、/var/spool/lpd/pio/@local/ddi ディレクトリー内でデータベース・ファイル名の検索に使用されます。この簡易書式の代替名は、フォーマッター・ドライバーとフォーマッターがスタンドアロン・デバイスとして実行されるときに、スプーラーの代わりに、その便宜を図るものとして与えられます。

-! FormatterName ロード、リンク、および始動の対象となるフォーマッターの絶対パス名を指定します。

-! フラグを指定しない場合、データベースの mf 属性名で 定義されたデフォルトのフォーマッター名が使用されます。デフォルト・フォーマッター名は、 フォーマッター・ドライバーとフォーマッターがスタンドアロン・デバイス として実行されるときに、スプーラーの代わりに、その便宜を図るものとして与えられます。

-# + PassThroughOption 印刷ファイルは変更されずにパススルーされるものとして指定します。 -# + フラグを指定しない場合、印刷ファイルがフォーマットされます。

フォーマッターの setup ルーチンに渡されるパラメーターには、値 0 ではなく、1 が入っています。値 0 は、ファイルをフォーマットする代わりにパススルーすることを示します。

  1. ページ幅を 132 文字にオーバーライドし、pioformat コマンドとフォーマッターをスタンドアロン・フィルターとして使用して、 印刷キュー pro に対応するキュー・デバイス std について、データベース・ファイル (仮想プリンター記述) にしたがって、myfile ファイルをフォーマットするには、以下のように入力します。
    cat myfile | pioformat  -@ pro:std -w 132 >/dev/lp0
  2. スプーラーのもとで実行中のパイプライン内で pioformat コマンドと フォーマッターを使用するには、以下のように入力します。

    %Ide/pioformat  -@ %Idd/%Imm  -! %Idf/piof420x %Fbb %Fee ...
    この例では、以下のことが想定されています。
    • プリンターは、4207 Model 2 Proprinter です。
    • 印刷キュー名は pro です。
    • 印刷キューについて定義されているキュー・デバイス (仮想プリンター) は、std というキュー 1 つだけで、その出力データ・ストリーム・タイプは asc (拡張 ASCII) です。
    • プリンター名は /dev/lp0 です。
    • 印刷ジョブ実行依頼側がフラグと引数 -i 5 を指定しています。
    印刷ジョブ・マネージャー (piobe コマンド) が シェルにパイプラインを渡してファイルをフォーマット設定する前に、 属性値に対するパイプラインの組み込み参照を解決します。 この例についての上記の想定に基づき、 属性参照が以下のように解決されます。
    項目 説明
     %Ide -> /usr/lpd/pio/etc pioformat コマンドが常駐するディレクトリー。
     %Idd ->/var/spool/lpd/pio/@local/ddi データベース・ファイルのディレクトリー。
     %Imm ->4207-2.asc.lp0.pro:std データベース・ファイル名。
     %Idf -> /usr/lpd/pio/fmtrs フォーマッターのディレクトリー。
    %Fbb -> 空文字列 (実行依頼側が -b フラグを指定しなかったため)
    %Fee -> -i 5 このフラグと引数を指定した実行依頼。
    結果的に生成された以下のパイプラインがシェルに渡されてファイルをフォーマットします (読みやすいように複数行に分けて掲載してあります)。
    
    /usr/lpd/pio/etc/pioformat        # initiate the formatter driver
    -@/usr/lpd/pio/ddi/4207-2.asc.lp0.pro:std
                                      # (digested) database file
    -!/usr/lpd/pio/fmtrs/piof420x     # loadable formatter
    -i5                               # formatting option
                                      # (indent 5 characters)

ファイル

項目 説明
/usr/lpd/pio/etc/pioformat フォーマッター・ドライバーが入っています。
/usr/lpd/pio/fmtrs/* フォーマッターが入っています。
/var/spool/lpd/pio/@local/ddi/* 要約されたデータベース・ファイルが入っています。