Quando escrevo um software para imprimir em uma impressora, não quero saber os comandos especiais específicos que você precisa enviar para uma impressora Lexmark para que seja impressa em comparação com uma impressora HP. O que eu quero escrever é uma abstração dada a me pelo sistema operacional , dessa forma eu só preciso escrever meu código de impressão uma vez e meus usuários podem usar qualquer impressora que quiserem, desde que o sistema operacional possa traduzir a interface genérica para a interface específica do fabricante.
Agora, como o sistema operacional sabe como traduzir essa abstração para os comandos específicos do fabricante para o dispositivo? O sistema operacional publica uma API que o fabricante pode escrever seu "código de tradução" que vai da interface genérica para seu hardware específico.
Esse "código de tradução" é um driver.
A diferença entre um driver gráfico e um driver de impressora é que um driver de impressora fala com o print API e os gráficos falam com o API gráfica .