A linux machine can connect to a local printer via several means. The most common method is via a USB connection. Other means include the paralell port and the serial port. Some “USB” printers emulates serial ports or parallel ports using USB-to-serial or USB-to-parallel port chips in the printer. As such, these printers will appear as a /dev/lp* or /dev/ttyUSB* device.
Not all printers will work in Linux. This is because some inexpensive printers rely on the host operating system to “render” the graphics to be printed. Such printers are not supported by most Linux machines because they require platform (Windows) specific drivers.
If you want to use a printer from Linux, it is best to look for one that natively supports at least one of two important protocols: PCL3 or Postscript. PCL (printer control language) is a protocol originally used by HP printers. PCL level 3 is a widely accepted standard that is also commonly found on non-HP printers. Linux has mature drivers to support PCL printers. The same is true for Postscript, which is a fairly old Adobe standard to render graphical content using text commands.