†逆襲のOS/2†
作成開始日 2021.06.10
最終更新日 2021.06.11
構文)LPR -p 出力ポート -s プリントサーバのIPアドレス 印刷するファイル名 用例)LPR -p LPT1 -s 192.168.1.100 print.psちなみには、プリンタはPostScript互換で、出力ファイルはPS形式であれば作成方法は問わない。プリンタドライバの出力をPSファイル化するのが一般的だが、別途アプリケーションで作成したPSファイルでもよい−−と思う。ただし、汎用PSファイルでは各プリンタ独自の機能は使用できないが。
【注意】ここでは出力ポートをLPT1としているが、複数のプリンタを接続している場合は、環境に合わせて変更すること。また、プリントサーバのIPアドレスも自分の環境に合わせて変更すること。
でも、ネットワーク機能がないのは不便なので、IOデータのET-FPS1Lというプリント・サーバを接続した。これは、パラレル接続のプリンタをネットワーク対応に変換するアダプタだが、smb接続は不可能でLPR接続のみ(下記参照)。まあ、500円で入手できたので…。取り敢えずくっつけて、IPアドレスを変更。
【参考】実はWin9x/Me系ならば、ET-FPS1LでもSMB over TCP/IPが使用できる(WinMe@VMWareで確認済み)。ならば、OS/2でも接続できるんじゃね?と思って試してみた。で、確かに接続は可能だったが、印刷は不可能。バージョンアップ後のsambaサーバで発生したトラブルと同じで、原因不明のエラーで印刷ジョブが外に出ていかない。現状、OS/2ではLPR以外の出力方法はない。
さて、これをどうやってOS/2で使用するのかというと、まずはプリンタドライバがなければオハナシにならない。HL-1650用ドライバは[pscriptjp]に含まれているので、これを使用する。[pscriptjp.exe]を実行して、展開された[pscrit2.drv]を開き、HL-1650用ドライバをデスクトップにドラッグすればインストール終了。
あとは設定を変更して、出力先を[Raw Postscriptファイル][c:\spool\print.ps]と設定する(出力先ファイル名は何でも良い)。これで、アプリケーションから印刷したデータは、c:\spool\print.psにPS形式で保存される。このファイルを上記の要領でLPRで出力すれば終了。
/* SPOOL2.CMD */ Call RxFuncAdd 'SysLoadFuncs', 'RexxUtil', 'SysLoadFuncs' Call SysLoadFuncs fSpool='c:\spool\print.ps' fOutput='c:\spool\printNow.ps' CALL CHAROUT ,' * RUNNING NOW ... ' Do FOREVER rc=STREAM(fSpool,'C','Query Exists') IF rc<>'' THEN DO SAY '@REN' fSpool FILESPEC('N',fOutput) '@LPR -p LPT1 -s 192.168.1.100' fOutput '@DEL' fOutput CALL CHAROUT ,' * RUNNING NOW ... ' End CALL SysSleep(1) END