Tech Question: Printer Drivers

ERD50

Give me a museum and I'll fill it. (Picasso) Give me a forum ...
Joined
Sep 13, 2005
Messages
26,902
Location
Northern IL
Some posts in a recent thread and printing from mobile devices got me re-thinking an old question I had. Maybe some of the tech people here can explain - why are printer drivers so complex?

When I install an OS, I know it's loading hundreds (thousands?) of printer drivers. Even within a similar model line, there are different drivers. Why is this so complex? I mean, all printers do basically the same thing - take a document on your screen and 'paint' the dark spots dark, etc. I know that the way they go about this varies with the hardware, but doesn't the FW take care of this? Why can't there be a generic driver that just sends generic commands to printers?

Something that makes me think this is totally do-able is that there are some printers that can print a document directly from a flash drive or memory card, with no computer connection. So why can't we just send the document (or a standard image created by the computer) to the printer? That's what happens when one of these printers prints from a storage device.

I can plug in a CRT monitor, or an LCD monitor, different size monitors, etc - and I don't need a driver for that monitor (just one for my graphics card). These devices obviously work differently internally and convert standard input to something they display, so why aren't printers the same?

TIA for any insights.

-ERD50
 
I've asked the same about network connections. :blush:
 
(I was a former printer FW/SW developer)

Well, it's not that simple. Data come in many different format (text, jpg, tiff, pdf, ...) over many different networking protocols. Printer support different connector types. Each printer HW are designed & built differently (technology advances, laser, inkjet, color, resolution,multifunction support, duplex/simplex, paper type/size, ...) and those differences require special SW (driver) to handle the differences. If printers are from same manufacturer, and their printer models are similar, driver may work interchangeably. No such interoperability exists across vast majority of printers.
 
Last edited:
Nuts. I am trying to find a printer that has a driver for Windows 2000 Pro and prints 11x17s. I purchased a Brother that was SUPPOSED to do that but so far cannot find a driver.
 
(I was a former printer FW/SW developer)

Well, it's not that simple. Data come in many different format (text, jpg, tiff, pdf, ...) over many different networking protocols. Printer support different connector types. Each printer HW are designed & built differently (technology advances, laser, inkjet, color, resolution,multifunction support, ...) and those differences require special SW (driver) to handle the differences. If printers are from same manufacturer, and their printer models are similar, driver may work interchangeably. No such interoperability exists across vast majority of printers.

Thanks - but isn't that true of a monitor? It displays text, jpg, tiff, pdf, etc. And regardless if it is LCD, or CRT, or the internal components are different, as long as I can connect to a standard port, it displays fine.

Why can't the printer just take a standard image, send it to the printer, and the printer prints it? The computer would need to know about some of the basic configs of that printer - color, rez options, duplex, paper sizes, etc. But it still seems to me that a simple generic driver could respond to a small generic config file and do a small amount of pre-processing of the image it sends. But these printer drivers are so complex, with updates for practically every OS version, some older OS not supported, etc.

Am I still missing something? What?


-ERD50
 
I think what you're missing is that printer manufacturers supply different features in order to compete with other manufacturers. Therefore, a driver from HP will not do well with a Canon printer.

What you are dreaming about is what NeXT was about. Postscript on the screen was used as it was in the printer.
 
Thanks - but isn't that true of a monitor? It displays text, jpg, tiff, pdf, etc. And regardless if it is LCD, or CRT, or the internal components are different, as long as I can connect to a standard port, it displays fine.

Why can't the printer just take a standard image, send it to the printer, and the printer prints it? The computer would need to know about some of the basic configs of that printer - color, rez options, duplex, paper sizes, etc. But it still seems to me that a simple generic driver could respond to a small generic config file and do a small amount of pre-processing of the image it sends. But these printer drivers are so complex, with updates for practically every OS version, some older OS not supported, etc.

Am I still missing something? What?


-ERD50

Monitors are much, Much, MUCH simpler beast than printers. Printers have a lot of moving parts. E.g, they have to move paper through drums (laser printer) at specific timing, feed it back to print on back side, etc..

BTW, there are generic drivers that works with many printers in limited fashion. So, it is not a far fetched idea. It's just going to be very difficult (if not possible) to tune it to work right.
 
Last edited:
Old Postscript printers used to come close to a common driver. I've never seen an OS with lots of drivers. I always have to go to the manufacturer's website to download the driver. They'd all have to agree on a common printer language in order to share a driver. Most printers seem to use their own.

Not only do the drivers print, they also report printer status and sell you printer supplies. That would be tough with a common driver as well. At least the old printers used their own fonts too, requiring a translation by the driver. They are not simple pixel printers.
 
Postscript supports a lot of old printer standard features. But printers are evolving faster than the language (Postscript is one). If Postscript can support all the printer features, and printers only accept Postscript as data, one driver can fit them all. But that's not reality.
 
Monitors are much, Much, MUCH simpler beast than printers. Printers have a lot of moving parts. E.g, they have to move paper through drums (laser printer) at specific timing, feed it back to print on back side, etc..

BTW, there are generic drivers that works with many printers in limited fashion. So, it is not a far fetched idea. It's just going to be very difficult (if not possible) to tune it to work right.

I guess I don't see what moving parts has to do with it. Wouldn't that be controlled by firmware? (edit/add: sure FW controls this - when I started my printer the first time, with no connection to a computer, it can print a test page, it can print status pages. It knows how to print). The computer would simply need to know if duplex was supported.

Another analogy would be the generic portable music players. I have several different types, with different features, different displays, different playlist capabilities, and I'm sure they have totally different 'engines' in them. But I just plug 'em in my USB port, drag a music file onto them, eject and I can play my music. So why can't printing be done this way?


Old Postscript printers used to come close to a common driver. I've never seen an OS with lots of drivers. I always have to go to the manufacturer's website to download the driver. They'd all have to agree on a common printer language in order to share a driver. Most printers seem to use their own.

Not only do the drivers print, they also report printer status and sell you printer supplies. That would be tough with a common driver as well. At least the old printers used their own fonts too, requiring a translation by the driver. They are not simple pixel printers.

Maybe what I saw was a list of printers to download, during the install process? At any rate, it is a long, long list! There must be a lot of effort to maintain all those.

It still seems almost trivial to me to have some method to report status, even if as it varies from machine to machine. There's a finite number of options, and some free form text message could just be sent back, including web links to supplies. Or that could be in a simple, standardized extensible xml format config file.

Your comment on 'not simple pixel printers' may be what I'm missing. But what about the printers that print from thumb drives or memory cards? I guess that is only a limited set of formats (jpg, pdf?), but how hard would it be for the computer to pre-process to an accepted format?

I seem to recall that postscript was supposed to simplify things, not sure where that went.

-ERD50
 
Last edited:
The idea behind AirPrint *is* to provide easy, powerful, driverless printing. You'll never install printer drivers on your iPhone or iPad (or your Mac these days).

Older printers don't support it, but almost all new printers do. In the future, printing will just work for people. Turn on the printer, get the printer and the iPad on the same network and printing will just work without any other setup.
 
Nuts. I am trying to find a printer that has a driver for Windows 2000 Pro and prints 11x17s. I purchased a Brother that was SUPPOSED to do that but so far cannot find a driver.

Have you tried calling Brother customer support? I bought a new HP printer but could not locate a driver for it. They steered me to one for a different model that worked on mine as well.
 
I guess I don't see what moving parts has to do with it. Wouldn't that be controlled by firmware? (edit/add: sure FW controls this - when I started my printer the first time, with no connection to a computer, it can print a test page, it can print status pages. It knows how to print). The computer would simply need to know if duplex was supported.

Another analogy would be the generic portable music players. I have several different types, with different features, different displays, different playlist capabilities, and I'm sure they have totally different 'engines' in them. But I just plug 'em in my USB port, drag a music file onto them, eject and I can play my music. So why can't printing be done this way?

In the old days, most data went from computer to printer (like computer to monitor), a one way traffic if you will.

Well as printer got complex, there are now more information coming back from the printer. Driver must handle that data. Say, if your duplex job fails to print on back side, your printer must convey that message back to host. The host driver must interpret that and react (retry, display status). So, the more complex the printer is, more complex the driver has to be.
 
The idea behind AirPrint *is* to provide easy, powerful, driverless printing. You'll never install printer drivers on your iPhone or iPad (or your Mac these days).

Older printers don't support it, but almost all new printers do. In the future, printing will just work for people. Turn on the printer, get the printer and the iPad on the same network and printing will just work without any other setup.

I was thinking that AirPrint just pushed the driver tasks to another device (the way Cornado Workplace does), but maybe not. That appears to be a 'standard driver' for all those printers, if I understand it correctly and I may not.

Unfortunately, that looks like a proprietary format, I'd like to see something generic and device independent. I would think printer mfgs would love to reduce the number of drivers they need to support.

-ERD50
 
I suspect that the printer makers, in an effort to reduce the component costs, move the image processing from the printer to the PC. Most PCs now have gigabytes of memory and a fast CPU, and relocating the "smart" for image processing from the printer to the driver residing in the PC would reduce the digital hardware requirement inside the printer.

The old Postscript printers of 10 to 15 years ago used to have an internal RISC processor, and those used to be just plain BW laser printers. Big color laser printers used by megacorps do have a fast internal CPU, but I no longer know what goes inside them. I figure that personal laser printers cannot afford the same kind of hardware.
 
The first PostScript printer, the original LaserWriter, cost $6,995 and used a Motorola 68000 processor (definitely not a RISC chip) and had 1.5 MB of RAM. And only weighted 77 pounds!

Today's printers generally use "systems on a chip" (SoC) that have way more power than the old printers did.

I still have a LaserWriter down in my "boneyard", though it's not one of the original models.
 
I suspect that the printer makers, in an effort to reduce the component costs, move the image processing from the printer to the PC. Most PCs now have gigabytes of memory and a fast CPU, and relocating the "smart" for image processing from the printer to the driver residing in the PC would reduce the digital hardware requirement inside the printer. ...

I agree with that. But I think what I'm wondering is, why can't the computer process the document down to some standard image that any printer could accept?

How does AirPrint do this? Why not a generic version of that approach?

As I mentioned, some printers can print from memory cards, with no computer. Or are they far slower in this mode? But still, if the computer did 99% of the pre-processing it should still be fast.

-ERD50
 
Nuts. I am trying to find a printer that has a driver for Windows 2000 Pro and prints 11x17s. I purchased a Brother that was SUPPOSED to do that but so far cannot find a driver.

Of course you are asking for drivers for a 10+ year old os which newer models won't support because there are not many installations windows 2000 pro left. The IT industry is the champion of planned obsolescence in particular the Software Industry where support for Windows XP ends in April. (after 12+ years). In a way it is suprising that the hard disk on a 12+ year old machine is still working.
 
I agree with that. But I think what I'm wondering is, why can't the computer process the document down to some standard image that any printer could accept?

For quality printing you don't want to just send down giant images. That kinda works, but it takes memory and bandwidth, so it could be quite slow.

There are basically three types of "stuff" that you want to print: images, text, and vector graphics.

Tossing a jpeg to a printer works great for photos, but not so much for text or vector graphics (like Illustrator output for example).

A printing system like AirPrint lets an app provide which ever "stuff" the app is working with: if it has a jpeg photo, it's a few lines of code for an app to hand this to the printing system and get it printed. But you can also provide vector graphics and text that will look its best on your printer. AirPrint also handles paper handling, color management, and related stuff too. Much more than just putting a jpeg on a USB stick and printing that.
 
Have you tried calling Brother customer support? I bought a new HP printer but could not locate a driver for it. They steered me to one for a different model that worked on mine as well.

Yes I have. Their hardware folks said a driver exists, software says no way. I asked if another Brother driver would work. They really didn't answer that specific question.

I wish there were a printer 'chooser' where I could select my requirements and it would tell me what (if) there is a printer available that would do the job.
 
Nuts. I am trying to find a printer that has a driver for Windows 2000 Pro and prints 11x17s. I purchased a Brother that was SUPPOSED to do that but so far cannot find a driver.
There is a page: brother.com/E-ftp/WIN2KPRN.html
You never mentioned the model...
 
Originally Posted by ERD50 View Post
I agree with that. But I think what I'm wondering is, why can't the computer process the document down to some standard image that any printer could accept?
For quality printing you don't want to just send down giant images. That kinda works, but it takes memory and bandwidth, so it could be quite slow.

There are basically three types of "stuff" that you want to print: images, text, and vector graphics.

Tossing a jpeg to a printer works great for photos, but not so much for text or vector graphics (like Illustrator output for example).

A printing system like AirPrint lets an app provide which ever "stuff" the app is working with: if it has a jpeg photo, it's a few lines of code for an app to hand this to the printing system and get it printed. But you can also provide vector graphics and text that will look its best on your printer. AirPrint also handles paper handling, color management, and related stuff too. Much more than just putting a jpeg on a USB stick and printing that.

So if I'm getting this, AirPrint sounds like what I'm talking about (though it's proprietary). One generic driver/handler for a bunch of different printers.

If so, what kept this from being done before? I would think it would be beneficial to the printer makers, support groups, etc. I hope some standards group comes up with a non-proprietary printing handler like AirPrint.

-ERD50
 
Yes I have. Their hardware folks said a driver exists, software says no way. I asked if another Brother driver would work. They really didn't answer that specific question.

I wish there were a printer 'chooser' where I could select my requirements and it would tell me what (if) there is a printer available that would do the job.

This might be an okay starting point.

CNET Printer Finder

It's not highly detailed, but might provide a first cut. Part of the problem is that new models come on the market so frequently that it's hard for any "comprehensive" tool to keep up.
 
So if I'm getting this, AirPrint sounds like what I'm talking about (though it's proprietary). One generic driver/handler for a bunch of different printers.

If so, what kept this from being done before? I would think it would be beneficial to the printer makers, support groups, etc. I hope some standards group comes up with a non-proprietary printing handler like AirPrint.

-ERD50

I think many manufacturers thought that proprietary was a way to lock in customers. There is also a huge legacy of all supported formats being brought forward, many of these are vendor specific.

I agree certain devices seem to be more agreeable to new hardware. Compare displays to printer drivers, faxes also used to be as problematic.

Of couse SQL is a standard and many DBMS's implement the standards in different ways. Look at a particular vendor that has a different DBMS for several OS/hardware platforms, different syntax to do the same operation.

Still, I would love to see standard groups define and support a base functionality.
MRG
 
Back
Top Bottom