私はRuby / Rails Webアプリケーションを持っていますが、仕事の1つは、アプリケーションによって生成されたPDFファイルをネットワーク上のXerox 4127プリンタに送信することです。これは複数のlprコマンドを終了して実行することによって行われます(デフォルトの印刷キュー、スプーリングコピーを防ぐために-sを使用し、トレイを識別するために-o InputSlotを使用)。 PDFはファイルの詳細と必要な用紙の色に応じて別のトレイに送信されるため、1つの文書/印刷ジョブにまとめることはできません。 「サイクル」には15,000以上のページを含めることができ、一度に20〜30〜100のバッチでプリンタに送信されます。
私は通常のPCL 6 Gutenprintドライバを使用してサーバー上のプリンタをLPDキューに設定しました。 XeroxはLinuxドライバを提供していませんが、lpd / lprで動作すると言います。実際には、コマンドラインからでもWebアプリケーションを介して手動で文書を正常に送信できました。
このプロセスはFoxproからWindowsプログラムにプロトタイプ化されました。プロトタイプはバッチの各ページに対してPDFを生成し、それを別々の印刷ジョブに送信します。プリンタにメトリックメモリボタンがあるため、プロトタイプはタスクを1つずつプリンタにダンプし、プリンタがすべてのタスクを管理できるようにし、優れたタスクを実行します。数百ページ/印刷ジョブの束がほぼすぐにプリンタキューに追加され、プリンタはまるで1つの巨大な文書の一部であるかのようにほとんど停止せずにそのジョブをエクスポートします。
私のWebアプリケーションは、実際には同じトレイに送信されたページを順番にPDFに結合するので、実際には速度が速くなると予想しましたが、そうではありません。このプロセスははるかに遅いです。プロトタイプで実行するのに8時間かかった「サイクル」がWebアプリケーションで完了するまでに数日かかります。
何が起こっているようであれば、プロトタイプのように印刷ジョブがプリンタに「ダンプ」されないことです。画面ユーティリティを使用してプリンタを監視すると、一度に1つの印刷ジョブしか表示できません。サーバーの印刷キューは、プリンタが以前のジョブが完了したことを示す信号を返すまで、各印刷ジョブを送信するのを待っているようです。だから、ドキュメントのように絶えずすべてを吐き出すのではなく、1ページを取得し、次のファイルが入ったら一時停止し、数ページ、次ページ、一時停止などを行います。理解した。
サーバーの印刷キューが実際にプリンタが「完了」と言うのを待っていますか?もしそうなら、プリンタが通信を返すのを待たずに送信、送信、送信のみを設定できますか?
2つの注意:サーバーは別の建物にありますが、プリンタとまったく同じサブネット上のコンピュータでいくつかのテストを実行しましたが、測定可能な改善は見つかりませんでした。つまり、ネットワークと関係がないようです。繰り返しますが、lprがPDF文書を送信する前にPostScriptに変換することを知っているので、事前に変換し、変換なしでプロセスをテストしました。サーバーのキュープロセスが改善されましたが、これは特に劇的ではありませんが、一度に1つのジョブだけがプリンタに送信されるという事実には影響しませんでしたが、これは根本的な問題だと思います。