How to print from Android to CUPS (running on another computer in the LAN)?
(CUPS (Common Unix Printing System/Server) is of course already set up to accept requests over the LAN.)
Preferably, without relying on proprietary software.
I have recently released an Android app based on (a modified) version of Cups4J. Communication is via http/https. The main thing I had to/opted to change from the java library was a dependency on JAXB for XML processing (a. I felt it too heavy b. Android does not have this javax lib and importing it apparently involves repackaging) relying instead on some hard coding.
I have a USB printer attached to a Windows machine and my Linux server sees that over SMB and publishes that via CUPS (be sure to "share...".)
For Android, there's Let's Print Droid - complete with a print service so all apps see it. It takes about two minutes to set up.
You can now set up CUPS for IPP Everywhere. It should then directly show up in your Android, Chromebooks, and maybe even iPhone printer menus. The other answers are outdated for reasonably new systems: CUPS 1.5+ and Android 4.4+ or an IPP Everywhere printer is required. For Apple AirPrint CUPS 2.2.2 is required. Debugging the functionality can be a bit difficult though.
It seems there are no native Android CUPS clients, which are free software.
The only way that can be found is rather clumsy, via a Debian installation on the Android device -- http://code.google.com/p/android/issues/detail?id=1148#c41. But using a Debian (or another distro) installation like LilDebi (for example) would definitely require root (in order to chroot)! That's not convenient for those who don't want to root the device (just to be able to print). (BTW, aren't there, besides chroot, any more modern alternative isolation technologies implemented in Linux that wouldn't require root?.. Perhaps, LXC?)
Another app (Remote CUPS) requires SSH access to the server.
ObPrint doesn't appear to be open-source.
Let's Print Droid likewise doesn't appear to be open-source.
I think you could try Shared printer app from pelya available at play store. It is a cups installation for android. I hope it works for you.