我需要将报告从 Java 桌面应用程序打印到点阵打印机 (Epson LX-300 II)。报告由文本和一些图形组成。打印机通过 USB 连接,我正在使用 CUPS 进行打印。我正在使用 Printable 接口(Java 中的相当标准)进行打印。
我的问题:
每种打印机分辨率(60x60、120x60、120x72)的文本打印质量都非常低。某些打印机驱动程序中似乎根本没有字体提示。字母看起来很丑。我不能使用直接文本输出来移植(看起来很棒),因为我还需要在同一页面上打印图形。
似乎问题不在 Java 中,因为同一个应用程序在 Windows 中打印高质量的文本和图形。此外,问题似乎不在 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”开源类,根据爱普生文档添加打印图像的能力。