1

私は毎日何千もの PDF ファイルを作成し、Ruby on Rails アプリと Prawn を使用して HP-4515 プリンターのセットでそれらを印刷しています。数年間の生産印刷の後、今日、HP の別の異常に気付きました。表の単純な 47kB 10 ページのファイルにより、HP プリンターがページ間で数秒間停止します。(表はページにまたがりません)。

私はカスタム印刷スプーラーを使用して、特定のドキュメントの束がコール センターでの送信から首尾一貫して印刷されるようにします。このスプーラーは、プリンターのポート 9100 ソケットに書き込まれたバイト数をログに記録します。奇妙なことに、この 47kB のファイルは 6,442kB の送信バイト (137 回!) をログに記録し、71 秒かかります。50kB ファイルのほとんどのソケット書き込みは、プリンターがバックアップされない限り、数ミリ秒しかかかりません (そして、プリンターの動作が遅くなるのを避けるために、ファイル書き込みを調整するいくつかのテクニックを使用して、スループットを向上させています。この調整は、ファイル内ではなく、ファイル間の遅延のみを行います。 )。

複数のページは、Prawn の @pdf.start_new_page を使用して作成されます。OSX の Skim または Preview で PDF を表示しても、予期しないことは何も表示されません。

私の他の約 100 個の PDF ファイル タイプは、この奇妙なプリンター一時停止を引き起こしませんが、他のファイル タイプのほとんどは単一ページです。

他のすべての @socket.write(str) 呼び出しは、実際にはファイル内のバイト数を送信します。

ファイルには独自の裁判情報が含まれているため、サンプルだけを添付することはできません。誰かに提案があれば、ナンセンス データを使用して同様のファイルを作成できるかもしれません....

ところで - 私たちが支払った金額にもかかわらず、HP のサポートは役に立たないことがわかりました。

4

1 に答える 1

0

お使いの HP プリンターが PDF ファイルを直接使用できるかどうか、私は真剣に疑っています。

あなたのいわゆる「カスタムスプーラ」は、印刷デバイスに消化可能なデータ形式を提供するために、PDF ファイルを PCL または PostScript に静かに変換します (CUPS が行うように)。

そして、この変換されたデータ (PCL、PostScript など) が、プリンターに送信される 6.442 kB のバイトを生成する可能性があります。

この状況を確認またはデバッグするには、プリンターに送信された実際のデータをキャプチャするいくつかの利用可能な手法を使用する必要があります...

于 2012-11-28T18:06:23.283 に答える