Качество печати Java в Linux на матричном принтере
Мне нужно распечатать отчет из настольного Java-приложения на матричный принтер (Epson LX-300 II). Отчет состоит из текста и графики. Принтер подключен через USB, и я использую CUPS для печати. Я печатаю, используя интерфейс Printable (довольно стандартный в Java).
Моя проблема:
Качество печати текста очень низкое на любом разрешении принтера (60x60, 120x60, 120x72). Кажется, что в каком-то драйвере принтера вообще нет намека на шрифт. Письма выглядят очень некрасиво. Я не могу использовать прямой вывод текста (это выглядит великолепно), потому что мне нужно также печатать графику на той же странице.
Кажется, что проблема не в Java, потому что одно и то же приложение печатает высококачественный текст и графику в Windows. Также кажется, что проблема не в системе CUPS, потому что OpenOffice или Abiword печатает один и тот же текст с одинаковыми шрифтами с очень хорошим качеством (хуже, чем в Windows, но все же хорошо).
Также проблема не со шрифтами: я пробовал шрифт Tahoma из Windows, и он делает то же самое: низкое качество при печати в java / linux.
Проблема не в BCI-хинтинге в X.Org, а отображение на экране выглядит великолепно.
Когда я экспортирую любой документ из OpenOffice в PDF и печатаю этот PDF, я получаю тот же эффект - уродливые не намекающие шрифты на бумаге. Если тот же документ напечатан из Office, все в порядке.
Я пробовал разные Linux (KUbuntu 10.04, Puppy 2, Puppy 4.3.1), и я получил тот же эффект на любом Linux.
Возможно, проблема в Ghostscript, у меня есть версия 9.x на Puppy и все та же. Или также я думаю, что может быть проблема с растеризатором CUPS ('rastertoepson' или 'foomatic-rip').
Это пример вывода (извините за "мобильное" качество фото):
Я просто понятия не имею, что происходит, помогите мне, пожалуйста.
- П.С. Мое окончательное решение - использовать класс с открытым исходным кодом ESCPrinter.java, добавив к нему возможность печати изображений в соответствии с документацией Epson.