Consider an application -- Word, FrameMaker, whatever, it doesn't matter -- trying to print a single letter on a sheet of paper. The application would like to simply tell the printer, "Please print a letter D exactly where I tell you. I want it this big and this color. Thanks."
Without a driver sitting between the application and the printer, the application would have to know everything there is to know about the gazillions of printers out there. The application could not simply ask for a letter D to be printed, it would have to also tell the printer how to do it. Further, the application would also have to understand the bazillion messages (when I was a kid, bazillion was more than a gazillion -- you only bet a bazillion when you were really sure) that can be sent from the printer to the computer: "I'm done." "I'm out of toner." "I have a paper jam."
Put another way, it's like a person of one language trying to communicate with many other languages without an interpreter.
But a driver fixes all that. The application tells the driver to print a D, and the driver says, "No problem, I know how to talk to the printer. Leave it to me." It acts as the language interpreter, if you will -- the application's single point of contact.