I need to print a report from a Java desktop application to a dot matrix printer (Epson LX-300 II). The report consists of the text ang of some graphics. The printer is connected via USB, and I use CUPS for printing. I print using the Printable interface (pretty standard in Java).
My problem:
The print quality of the text is very low at each resolution of the printer (60x60, 120x60, 120x72). There seems to be no hint of font in any printer driver. The letters look very ugly. I cannot use direct text output to the port (this looks great) because I also need to print the graphics on the same page.
It seems that the problem is not in Java, because the same application prints high-quality text and graphics on Windows. It also seems that the problem is not in the CUPS system, because OpenOffice or Abiword prints the same text with the same fonts in very good quality (worse than on Windows, but still good).
Also the problem is not in fonts: I tried the Tahoma font from Windows and it does the same thing: poor quality when printing in java / linux.
The problem is not that the BCI hint in X.Org, the display on the screen looks great.
When I export any document from OpenOffice to PDF and print this PDF, I get the same effect - ugly fonts not outlined on paper. If the same document is printed in Office, everything is in order.
I tried different Linux (KUbuntu 10.04, Puppy 2, Puppy 4.3.1), and I got the same effect on any Linux.
Perhaps the problem is in Ghostscript, I got version 9.x on Puppy and still the same. Or also I think that there may be problems with the CUPS rasterizer ("rastertoepson" or "foomatic-rip").
This is an example of output (sorry for the "mobile" -quality of the photo):

I just did not understand what was going on, help me.
- The postscript my final solution is to use the open source class "ESCPrinter.java", adding to it the ability to print images in accordance with the Epson documentation.