Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ apsd(8) — NEWS-os 4.2.1R

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

atlookup(1)

atxadmin(1)

atprint(1)

atstatus(1)

atfontlist(1)

atconfig(8)

APSD(8)  —  NEWS-OS Programmer’s Manual

名称

apsd − PAP をサポートする PostScript プリントスプーラ

形式

apsd [ −c ] [ −q ] [ −r ] [ −n spooler_name ] [ −t tmp_dir ] [ −e exec_prog ] −p unix_printer −d dict_dir −f font_list

解説

apsd は、PAP (AppleTalk Printer Access Protocol) を用いてクライント (Macintosh) マシンと交信するサーバです。このサーバを用いることにより、 NEWS は、PostScript プリンタに対するプリントスプーラとなります。 スプールされたデータは、UNIX 側でのプリンタの設定とその機能により 順次プリントアウトすることが可能になります。
 

オプション

−c スプールする際に CR/LF の変換を行います。
このオプションは、プリントフィルタによっては必要になるかも しれません。通常は、使用する必要はありません。
デフォルトでは、オフです。

−q スプールする際に プリント可能な ASCII 以外の文字に対して、8 進数でクォートされます
このオプションは、プリントフィルターに種類によっては必要になるかも しれません。通常は、使用する必要はありません。
デフォルトでは、オフです。

−r apsd は、一度作成した作業用辞書ファイルを再利用します。 そのために、 −d で指定されたディレクトリの下にいくつかのファイルが 残ります。 このオプションが指定されると、その度に作業用辞書ファイルを消しますので、 スペースの節約に、役立ちます。
デフォルトでは、オフです。

−n spooler_name
AppleTalk 上で見えるスプーラの名前 (object 名) を設定します。 タイプ名 (type) は、LaserWriter です。 日本語を含む名前を設定できません。
デフォルトでは、<hostname> Sony NEWS となります。

−p unix_printer
スプールした後に、プリントアウトする際にどのプリンタを使用するかを 指定します。apsdは受信したデータを一時的に ファイルに保存し (これを received_file とします)、 次のコマンドを実行します。
 
lpr −Punix_printer −r −s received_file
 
必ず /etc/printcap で指定されたプリンタ名を設定してください。
このオプションは、 −e オプションが指定されたときのみ省略できます。 他の場合には、省略できません。

−d dict_dir
apsd が、作業用の辞書ファイルを作成するディレクトリを指定します。
このオプションは、省略できません。

−f font_list
apsd は、スプールする際にクライアントと交信します。 その際に、クライアントからはサポートしているフォントリストを 要求されることがあります。ここでは、その際に返答すべき フォントリストを指定します。 実際に出力するプリンタのフォントリストを書くべきです。
このオプションは、省略できません。

−t tmp_dir
apsd が、受信したデータを一時的に保存しておくファイルを作成する ディレクトリを指定します。 大きなファイルをプリントアウトするためには、 充分なスペースが必要になります。
このオプションは、省略できます。その際には、/tmp となります。

−e exec_prog
印刷時に実行されるコマンドを指定します。
受信したファイルを引数として exec_progを実行します。 例えば −e /usr/local/mylpr と指定した場合には、 apsd は、lpr の代わりに /usr/local/mylpr <ファイル> の形で 実行します。
−p オプションが指定された時でも、このオプションが優先されます。 このオプションは、省略できます。
 

設定手順

ここでは、apsd の典型的な設定を示します。実際にはつぎのプリンタ に出力するものとします。 chang printer:LaserWriter@LocalTalk

1. フォントリストの収得

出力プリンタのフォントリストを収得します。 % atfontlist ’chang printer:LaserWriter@LocalTalk’ > /usr/local/chang.fnt これで、/usr/local/chang.fnt にフォントリストができました。
標準では、 LaserWriter のフォントリスト (/usr/sony/etc/LWFonts) と、 Laser Writer Plus のフォントリスト (/usr/sony/etc/LWPlusFonts) が用 意されています。フォントリストを得ることができない場合はこれらファイル を、一時的に使用することもできます。

2. UNIX プリンタの設定

ここで、UNIX 側のプリンタの設定をします。/etc/printcap ファイルに 以下のようなエントリを加えます。 PSPrinter:chang’s LaserWriter Sample:\
:lp=/dev/null:\
:sd=/usr/spool/PSPrinter:\
:lf=/usr/adm/PSPrinter-errs:\
:af=/usr/adm/PSPrinter-acct:\
:if=/usr/local/lib/PSPrinter: ここで、sd に指定されているディレクトリを作成し、af、 lf に指定されているファイルを作成します。 if は、出力される際に用いられるフィルタです。 ここでは、以下のようにしてみます。 #! /bin/sh
# Sample of /usr/local/lib/PSPrinter
/usr/sony/bin/atprint ’chang printer:LaserWriter@LocalTalk’
exit $? また、chmod +x /usr/local/lib/PSPrinter とします。 このような設定であれば、lpr からの出力も可能です。
 

3. apsd の起動

以上の準備の後、以下のように起動ができます。 # apsd −p PSPrinter −d /usr/spool/PSPrinter −f  /usr/local/chang.fnt
 

終了

apsd は、SIGHUP を送ると 使用した作業ファイルを全てクリアします。 ただし、apsd は終了しません。
SIGTERM を、送ると 使用した作業ファイルを全てクリアした後、apsd は終了します。
 

バグ

apsd が作業用に作ったファイルは、 −d で指定されたディレクトリの下の PSet で始まるファイル名です。 このファイルは、自動的には消去されません。

apsd は、ひとつのプリンタしか処理で来ません。 複数のプリンタに対するスプールをするためには、 複数の apsd を走らせる必要があります。 一つのマシンで複数の apsd を走らせても問題はありません。

apsd は、スプールの要求を並列に処理しません。

apsd は、PostScript の Document Structuring Conventions を利用しています。 そのために、送られてきたデータで Document Structuring が誤っていると そのデータは壊れていると判断してスプールするのを止めてしまいます。 そのため、PostScript 自身正しくともプリントアウトされない場合があります。
一般の PostScript プリンタでは、Document Structuring Conventions を 処理しない場合が多いので、このような Document Structuring が 誤っているファイルでも出力されてしまうでしょう。

apsd は、PostScript プリンタのエミュレーションをしているわけでは ありません。そのため PostScript プリンタを設定するような PostScript ファイルを apsd に対して送っても意味がありません。
 

関連事項

atlookup(1), atxadmin(1), atprint(1), atstatus(1), atfontlist(1), atconfig(8). 

NEWS-OSRelease 4.2.1R

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026