Printers are standardizing on a thing called "driverless printing," based on having some common Page Description Languages (or having the printer have support for handling a PDF directly): https://wiki.debian.org/CUPSDriverlessPrinting#Driverless_Pr...
Each printer having its own driver is sort of like ... each terminal having its own escape sequences. When printers and terminals were purpose-built electronics with limited hardware functionality, it made sense to put the smarts into the computer and have it figure out which operations were supported by the device. Nowadays everyone just uses TERM=xterm and there aren't physical terminals anymore (even the companies that used to build them will now sell you cheap general-purpose computers that run a full-screen terminal emulator). Printers have gone the same way; there's enough computational power inside the printer itself that you can just send it something like a PDF and tell it to figure things out.
Each printer having its own driver is sort of like ... each terminal having its own escape sequences. When printers and terminals were purpose-built electronics with limited hardware functionality, it made sense to put the smarts into the computer and have it figure out which operations were supported by the device. Nowadays everyone just uses TERM=xterm and there aren't physical terminals anymore (even the companies that used to build them will now sell you cheap general-purpose computers that run a full-screen terminal emulator). Printers have gone the same way; there's enough computational power inside the printer itself that you can just send it something like a PDF and tell it to figure things out.