Users can use commands like, for example, "COPY file1 LPT1:" to print the content of a file to a printer.
Under DR-DOS, however, the SCRIPT command can be loaded to run in the background in order to intercept and convert printer output from applications into PostScript to support PS-capable printers also by applications not supporting them directly.
In addition, it's possible for applications to include tools for editing printer description, in case there was no ready driver.
In the days when DOS was widely used, many printers had emulation modes for Epson FX-80[1] and IBM Proprinter commands.
[2] On Microsoft Windows systems, printer drivers make use of GDI (Unidrv or PScript-based) or XPS (XPSDrv).
Amiga used ANSI escape codes, not the special ones defined by the various printer manufacturers.
This way every application on the Amiga could use the same standard set of control sequences and wouldn't need to know which printer is actually connected.
Amiga internal function "PWrite" of printer.device writes 'length' bytes directly to the printer.
This fact led Amiga users to prefer third party Printer Systems with their own drivers, like TurboPrint and PrintStudio, which introduced not only recent drivers, but also featured a functioning Printer Spooler into Amiga, and featured 16 million colors printing.
This stack is capable of detecting any USB device by its class, but printers still require a driver to be controlled.
In addition to being install-able on a computer, drivers could also be present in the embedded firmware of printers and made available through a networking protocol (e.g. IPP).
The embedded firmware of a printer could thus eliminate the need to install any driver on a computer, by accepting print data in a general purpose format (e.g. PDF) via a networking protocol.
Despite some efforts to standardize various stages of the printing pipeline, printer interfaces are largely still very proprietary and manufacturer-specific.