These apps have support for huge amount of printers and allow printing over Wi-Fi, Bluetooth, and most importantly, USB.
It seems they might be based on some existing project, though. They all have very similar UI, and function the same.
Printer2Go and PrintHand don’t just have similar UI, but exactly the same UI.
On desktop, yes. But these apps work with Android phones via OTG. Much more convenient than a laptop.
Android CUPS Print, on F-Droid.
This app provides a Print Service to Android. This means that once it’s installed, you need to enable it in the ‘Print’ section of the settings app. Once the service is enabled, printers are automatically discovered using the mDNS protocol. You can print anything you want from any app, as long as the print service is enabled.
The CUPS Printing app is a solution for printing over network. It basically makes up for the fact CUPS is not discoverable by using JmDNS for multicast DNS; you can achieve the same by installing Avahi on the computer that runs the CUPS instance that’s physically connected to the printer.
I believe OP is looking for an app that will print to a printer connected directly to the phone’s USB port.
I tried it. This too only works over network.