-   Linux - Software (
-   -   Java Printing Problems (

anw 04-11-2009 06:46 PM

Java Printing Problems
Well, I've had a terrible time getting my printer working after I upgraded my system to all the latest & greatest. Some details of the travail are here. While most of that is behind me, I still have one significant problem: I have Moneydance, a java app, that can't print. Since this is how all my bills are paid (and checks written), this is a major problem, but is (I think) a generic java printing problem.

I have tried from version Java-1.4 to Java-6 from Sun, java-6 from IBM (I heard IBM's printing was much more robust), can't download anything before java-6 from IBM (they seem to be having a server problem), openjdk-6, and The GNU Compiler Collection (gcj 4.3), all of them either do absolutely nothing, pop up a dialog that says something like PrinterIOException, or pop up a dialog that says "No printer service found".

I have also looked all over the web for this, and, except for a solution involving "mv /usr/lib/cups" and using different java runtimes, can't find a solution.

Does anyone have any insight into how to fix this, or a java package that prints?


bigearsbilly 04-11-2009 07:47 PM

can it print to file?
print to postscript
and then print from a postscript reader?
as an emergency workaround.

anw 04-12-2009 12:47 PM

I'm not sure how to make it print to a file. I'm using the KDE desktop, and that printer dialog lets me do that for KDE applications only. As far as Moneydance is concerned, it's not a KDE app, and when I try it anyway, it doesn't give me any options for printing (I assume it just prints to the default printer). Using the localhost:631 interface in my browser, it also doesn't give me the option to print to a file.

anw 04-13-2009 05:52 PM

I have found something out. Evidently, java uses lpr to print, which is unnecessary in most (all?) other systems. I was printing fine except for java, then found a java program (jedit) that printed out more info regarding its exception, and the problem was not finding lpr.

Now, when using lpr, it wants to use a ghostscript line like this:

gs -sstdout=%stderr -dBATCH -dPARANOIDSAFER -dQUIET -dNOPAUSE -r300x300 -sDEVICE=cdj550 -dBitsPerPixel=3 -sOutputFile=%stdout -_
This is not the gs line that appears in the G85.ppd in /etc/cups/ppd/G85.ppd, which is:

*FoomaticRIPCommandLine: "gs -q -dBATCH -dPARANOIDSAFER -dQUIET -dNOPAUSE -r300x300 -sDEVICE=cdj550%A%Z -sOutputFile=- -"
Notice one difference: the first (which doesn't work) has "-dBitsPerPixel", which is absent in the second. If I "print to file", then pipe the file through the first one, I get an error which says "rangecheck in .putdeviceprops". If I remove the "-dBitsPerPixel", then do the same thing, it prints.

So, now the question is, where does lpr get its gs command line so I can change it? Anyone out there have a clue?


anw 04-15-2009 08:08 PM

I found the problem. Somehow, in the midst of all the upgrading, I lost the BSD print stuff (lpr, etc.). I discovered this, then reinstalled lpr, which didn't work. I should have reinstalled "cups-bsd", which has BSD print interface to CUPS.

vbnaik 04-21-2009 12:32 PM

Printing in java
Printing in java has become trivial now, check out the sun's web site to print a doc using java.

vbnaik 04-21-2009 12:34 PM


check out the basic steps to print a doc using java.

All times are GMT -5. The time now is 11:31 AM.