Solaris のシステム管理 (印刷)

Procedure出力が正しくない場合の問題を解決する方法

  1. スーパーユーザーまたは lp としてログインするか、同等の役割になります。

  2. プリンタタイプが正しいことを確認します。

    プリンタタイプが正しくないと、正しく出力されないことがあります。たとえば、プリンタタイプ PS を指定してもページが意図した順序の逆に印刷される場合は、プリンタタイプ PSR を試してください(この 2 つのタイプ名は大文字で指定しなければなりません)。また、プリンタタイプが正しくないと、テキストの欠落、読みづらいテキスト、または間違ったフォントのテキストが出力されることがあります。プリンタタイプを判別するには、terminfo データベース内のエントリを調べます。terminfo データベースの構造については、「プリンタタイプ」を参照してください。

    1. 印刷サーバー上で、プリンタの特性を表示します。


      $ lpstat -p luna -l
      printer luna is idle. enabled since Thu Jul 12 15:02:32 ...
              Form mounted: 
              Content types: postscript
              Printer types: PS
              Description:
              Connection: direct
              Interface: /usr/lib/lp/model/standard
              After fault: continue
              Users allowed:
                      (all)
              Forms allowed:
                      (none)
              Banner not required
              Character sets:
      
              Default pitch:
              Default page size: 80 wide 66 long
              Default port settings:  
      $
    2. プリンタのマニュアルを参照して、プリンタのモデルを調べます。

    3. プリンタタイプが正しくない場合は、Solaris 印刷マネージャーの「プリンタのプロパティを変更」ウィンドウを使用して変更するか、次の lpadmin コマンドを使用します。


      # lpstat -p printer-name -T printer-type
      

      印刷クライアント上では、プリンタタイプを unknown にしてください。印刷サーバー上では、プリンタタイプは使用するプリンタのモデルをサポートするように定義された terminfo エントリと一致しなければなりません。使用するプリンタのタイプ用の terminfo エントリがない場合は、「サポートされていないプリンタの terminfo エントリを追加する方法」を参照してください。

  3. バナーページは印刷されるが文書の本文が印刷されない場合は、ファイル内容形式を確認します。

    プリンタに指定したファイル内容形式は、プリンタがフィルタなしで直接印刷できるファイル形式を示します。ファイル内容形式が正しくなければ、必要なときにフィルタリングがバイパスされることがあります。

    1. 前の手順の lpstat コマンドで表示されたファイル内容形式に関する情報をメモします。

      印刷クライアント上では、1 つ以上の明示的な内容形式を指定する理由がない限り、ファイル内容形式を any にしてください。クライアント上で内容を指定すると、印刷サーバー上ではなく印刷クライアント上でフィルタリングが実行されます。また、クライアント上の内容形式は、印刷サーバー上で指定した内容形式と一致しなければならず、印刷サーバー上の内容形式はプリンタの機能を反映していなければなりません。

    2. プリンタのマニュアルを参照し、プリンタで直接印刷できるファイルのタイプを判別します。

      これらのファイル形式を参照するために使用する名前は、プリンタメーカーが使用している名前と一致しなくてもかまいません。ただし、使用する名前は LP 印刷サービスに認識されるフィルタで使用する名前と一致しなければなりません。

    3. ファイル内容形式が正しくない場合は、Solaris 印刷マネージャーの「プリンタのプロパティを変更」ウィンドウを使用して変更するか、次の lpadmin コマンドを使用します。


      # lpadmin -p printer-name -I file-content-type(s)
      

      必要に応じて、このコマンドを印刷クライアント上、印刷サーバー上、またはその両方で実行します。印刷クライアント上で -I any を試し、印刷サーバー上で -I "" を試してください。-I "" は、NULL のファイル内容形式リストを指定します。これは、プリンタはそのプリンタタイプと正確に一致するファイルしか直接印刷できないので、すべてのファイルをフィルタにかけることを意味します。

      ファイルが印刷されないときは、まずこの組み合わせを選択してみるとよいでしょう。それで成功したら、印刷サーバー上で明示的な内容形式を指定し、不要なフィルタリングを減らすことができます。ローカルの PostScript プリンタでは、プリンタでサポートされている場合は、postscript または postscript,simple を使用することをお勧めします。PSPSR はファイル内容形式ではなく、プリンタタイプなので注意してください。

      -I を省略すると、ファイル内容のリストはデフォルトの simple になります。-I オプションを使用し、simple 以外にもファイル内容形式を指定する場合は、リストに simple を含める必要があります。

      複数のファイル内容形式を指定するときは、名前をコンマで区切ります。また、名前をスペースで区切り、リストを引用符で囲むこともできます。ファイル内容形式として any を指定すると、フィルタリングは行われないので、プリンタで直接印刷できるファイルタイプのみを送信する必要があります。

  4. フォントのダウンロードに必要なフィルタリングを、印刷要求がバイパスしていないかどうかをチェックします。

    ユーザーが lp -T PS コマンドを使用して印刷要求を PostScript プリンタに送ると、フィルタリングは実行されません。フィルタリングを強制するために lp -T postscript を使用して要求を送ってみます。この際、文書に必要な非常駐フォントがダウンロードされることがあります。

  5. プリンタポートの stty 設定値が正しいことを確認します。

    1. プリンタのマニュアルを参照して、プリンタポートに合った stty 設定値を判別します。


      注 –

      プリンタがパラレルポートまたは USB ポートで接続されている場合、ボーレートの設定値は無関係です。


    2. 現在の設定値を調べるには、stty コマンドを使用します。


      # stty -a < /dev/term/a
      speed 9600 baud;
      rows = 0; columns = 0; ypixels = 0; xpixels = 0;
      eucw 1:0:0:0, scrw 1:0:0:0
      intr = ^c; quit = ^|; erase = ^?; kill = ^u;
      eof = ^d; eol = <undef>; eol2 = <undef>; swtch = <undef>;
      start = ^q; stop = ^s; susp = ^z; dsusp = ^y;
      rprnt = ^r; flush = ^o; werase = ^w; lnext = ^v;
      parenb -parodd cs7 -cstopb -hupcl cread -clocal -loblk -parext
      -ignbrk brkint -ignpar -parmrk -inpck istrip -inlcr -igncr icrnl -iuclc
      ixon -ixany -ixoff imaxbel
      isig icanon -xcase echo echoe echok -echonl -noflsh
      -tostop echoctl -echoprt echoke -defecho -flusho -pendin iexten
      opost -olcuc onlcr -ocrnl -onocr -onlret -ofill -ofdel tab3
      #

      このコマンドでは、プリンタポートの現在の stty 設定値が表示されます。

      LP 印刷サービスの標準プリンタインタフェースプログラムで使用されるデフォルトの stty オプションを次の表に示します。

      オプション 

      意味 

      -9600

      ボーレートを 9600 に設定 

      -cs8

      8 ビットバイトを設定 

      -cstopb

      1 バイト当たり 1 ストップビットを送信 

      -parity

      パリティーを生成しない 

      -ixon

      XON/XOFF (START/STOP または DC1/DC3 ともいう) を使用可能にする 

      -opost

      以下にリストされた設定値をすべて使用して「処理後出力」を実行する 

      -olcuc

      小文字を大文字に割り当てない 

      -onlcr

      改行をキャリッジリターン/改行に変更する 

      -ocrnl

      キャリッジリターンを改行に変更しない 

      -onocr

      カラム 0 でもキャリッジリターンを出力する 

      -n10

      改行後の遅延なし 

      -cr0

      キャリッジターン後の遅延なし 

      -tab0

      タブ後の遅延なし 

      -bs0

      バックスペース後の遅延なし 

      -vt0

      垂直タブ後の遅延なし 

      -ff0

      用紙送り後の遅延なし 

    3. stty 設定値を変更します。


      # lpadmin -p printer-name -o "stty= options" 
      

      次の表を使用して、印刷出力に影響するさまざまな問題を解決する stty オプションを選択します。

      stty

      結果 

      間違った設定から起こり得る問題 

      110, 300, 600, 1200, 1800, 2400, 4800, 9600, 19200, 38400

      ボーレートを指定した値に設定する (ボーレートを 1 つだけ入力する) 

      ランダム文字と特殊文字が印刷され、間隔がバラバラになることがある 

      oddp

      evenp

      -parity

      奇数パリティーを設定する 

      偶数パリティーを設定する 

      パリティーを設定しない 

      文字が欠落または間違った文字がランダムに表示される 

      -tabs

      タブを設定しない 

      テキストが右マージンにくっついてしまう 

      tabs

      8 スペースごとにタブを設定する 

      テキストに左マージンがなく、つながってしまうか、くっついてしまう 

      -onlcr

      行頭でキャリッジリターンを設定しない 

      間違ったダブルスペース 

      onlcr

      行頭でキャリッジリターンを設定する 

      ジグザグに印刷される 

      オプションをスペースで区切り、オプションリストを単一引用符で囲むと、複数のオプションの設定を変更できます。たとえば、奇数パリティーを使用可能にし、7 ビットの文字サイズを設定する必要のあるプリンタを仮定します。そのためには、次の例のようなコマンドを入力します。


      # lpadmin -p neptune -o "stty='parenb parodd cs7'"
      

      stty オプション parenb でパリティーチェックまたはパリティー生成を使用可能にし、parodd で奇数パリティーの生成を設定し、cs7 で文字サイズを 7 ビットに設定します。

  6. 文書が正しく印刷されることを確認します。


    # lp -d printer-name filename