Usually printing with Linux is easy. Most USB printers are automatically configured when plugged in and nothing additional is required to make them work.
However, I recently had a problem where two of my USB printers would print garbage or not print at all. Both are Brother printers but different models. One is an HL2270DW B&W laser printer and the other is an MVC-9340CDW multifunction printer-copier-scanner. At first I thought the problem was related to the fact they are from the same manufacturer. But after a bit more work I discovered the real problem.
One day when working with some of my cables, I realized that the USB cable from my main workstation connected to a long extension and then into a non-powered USB 2.0 hub. From there a USB cable went to each of the printers.
I decided to change this setup and see what would happen. I replaced the long extended pair of USB cables with a single USB cable connected to my USB 3.0 powered hub. This replacement cable connected to a second USB 3.0 powered hub, and from there USB cables diverged to each of my printers.
Everything now works fine and after a bit of experimenting I determined that it was the long cable run with an extension and the lack of power on the last USB hub that caused the problem.
If you are having problems with USB printers that print garbage or not at all, try to shorten your cable runs and be sure to use well-powered USB hubs.