レポートを Java デスクトップ アプリケーションからドット マトリックス プリンター (Epson LX-300 II) に印刷する必要があります。レポートは、テキストと一部のグラフィックで構成されます。プリンターはUSB経由で接続されており、CUPSを使用して印刷しています。Printable インターフェイス (Java ではかなり標準) を使用して印刷しています。
私の問題:
テキストの印刷品質は、すべてのプリンター解像度 (60x60、120x60、120x72) で非常に低くなります。一部のプリンター ドライバーでは、フォント ヒンティングがまったくないようです。文字は非常に醜く見えます。同じページにグラフィックスも印刷する必要があるため、ポートに直接テキスト出力を使用することはできません (見栄えは良いです)。
同じアプリケーションが高品質のテキストとグラフィックスを Windows で印刷するため、問題は Java ではないようです。また、問題は CUPS システムにはないようです。これは、OpenOffice または Abiword が同じテキストを同じフォントで非常に高品質 (Windows よりも悪いが、それでも良い) で印刷するためです。
また、問題はフォントにはありません。Windows の Tahoma フォントを試してみましたが、同じです。Java/Linux で印刷すると品質が低下します。
問題は X.Org の BCI ヒンティングではなく、画面に表示すると見栄えがします。
ドキュメントを OpenOffice から PDF にエクスポートしてその PDF を印刷すると、同じ結果が得られました。同じ文書が Office から印刷されていれば、すべて問題ありません。
さまざまな Linux (KUbuntu 10.04、Puppy 2、Puppy 4.3.1) を試しましたが、どの Linux でも同じ結果が得られました。
問題は Ghostscript にあるのかもしれません。私は Puppy で 9.x バージョンを取得しましたが、それでも同じです。または、CUPS ラスタライザー (「rastertoepson」または「foomatic-rip」) に問題がある可能性もあると思います。
出力の例です(「モバイル」品質の写真で申し訳ありません):
何が起こっているのかさっぱりわかりません、助けてください。
-- PS 私の最終的な解決策は、「ESCPrinter.java」オープンソース クラスを使用して、エプソンのドキュメントに従って画像を印刷する機能を追加することです。