39

I've always wondered why I need a 500+ MB printer driver installed on my computer every time I set up a new printer. Why can't computers simply send the file that needs to be printed to a printer and have the printer do all the necessary processing?

Admittedly, I know nothing about printers. I am assuming that the printer driver is unique to each printer which converts some standard format file into specific instructions sent to the printer. Rather than forcing each computer to download this specific driver, does it not make more sense for this driver to reside solely on the printer itself and have the printer take in a standard file format?

Even in Apple's new patent application, they still talk about having the printer driver either in the cloud or on the device itself. Understandably, if the printer driver is in the cloud, the local PC would need to download it in order to use it. However, in the second case when the driver is stored on the device itself, why would the computer need to transfer the printer driver to the local PC and only then send the print job? Why can't it just send the file to print and have the printer take that file and use the printer driver (which is already installed on the printer itself) to print the document without any processing needed to be done on the PC?

Is it because printers don't have any processing capability? I find this one hard to believe because today's printers seem to be getting more and more sophisticated with things such as mini displays on them and they have the wifi built in and the ability to insert a memory card and print directly from it without a computer.

7
  • 15
    Applications are bloated these days, but 500+ MB for a printer driver is way exaggerated I think. Sounds more like (optional) software packages.
    – schnaader
    Aug 16, 2011 at 0:59
  • 4
    And wow does reading this make me thankful I use CUPS and linux. Hell, even when I ran a print server for windows clients I ran CUPS. Since CUPS takes care of the actual printer drivers, all the windows clients just used the same generic post-script driver, no matter which printer they printed to. It was nice.
    – Kyle__
    Aug 16, 2011 at 1:28
  • 3
    the 500MB is definitely exaggerated. .
    – surfasb
    Aug 16, 2011 at 1:29
  • Printer drivers may be a thing of the past in near future...conceivablytech.com/8817/products/…
    – Moab
    Aug 16, 2011 at 2:49
  • 8
    500MB is not exaggerated. HP drivers have been that large and larger (for their consumer products) for several years now. You're right in that the package includes vast amounts of bloatware and unnecessary apps. But HP doesn't offer a "just driver" package for many of these printers, so it's all you can get. Aug 16, 2011 at 17:48

7 Answers 7

29

Simple answer, they don't require 500 MB, or 50 MB, or even 5 MB of drivers. A PCL (what most inkjets speak) driver is in the hundreds of KB. Likewise, a postscript driver is equally tiny.

In Windows you can, in fact, install and use most printers using a built-in driver, even if it's not the "right" driver. You would be astounded at how many printers will work just fine with the hp-laserjet-4 driver for instance.

All that extra space is help files, graphics, updater, a silly application to let you order more ink online, clipart, etc. Mostly, all the extra space is junk.

Err, that didn't answer the question did it.

The answer is, the driver just needs to speak the language of the printer. Even if the printer read in a raw bitmap, you'd need a driver that took the page you're printing, and turned it into, say, a PPM file. That would be incredibly inefficient though, so they have languages like HPGL for plotters, PS for good printers, and PCL for OK printers and inkjets.

If your OS or software speaks a printer's language, it doesn't need a driver.

6
  • I have a big, fat HP lj3100 printer, and it will not print with any driver on WinXp, ~Vista or ~7. Throw away, buy a new one. Aug 16, 2011 at 13:03
  • 3
    For a number of host-based printers (a.k.a. WinPrinters), this doesn't work quite so well. There's also a number of printers that can take PDFs natively. Finally, while you can use a "related" driver, you may be giving up access to features particular to your printer, since the "wrong" driver won't expose them to Windows.
    – afrazier
    Aug 16, 2011 at 17:42
  • HP had a page for a while that listed "compatible" drivers for situations where for whatever reason you couldn't use the default drivers. It was quite handy. I haven't looked for it in a while but it may still exist. Aug 16, 2011 at 17:49
  • afrazier, oh completely, you do sometimes give up particular features, when using the "wrong" driver, but it's generally duplexing, stapling or ink/toner level reporting. I suppose there could be color matching and fusing strength parameters that could get skipped, but those aren't necessary for general printing. As far as PDF printing goes, not many of us have those drool-worthy Xerox color phasers...but I suppose it is getting more common.
    – Kyle__
    Aug 16, 2011 at 17:56
  • 1
    To extend the comment from afrazier. Some "professional grade" printers include features like stapling, automatic two side printing and even automatic horizontal/vertical stacking for printed copies (perfect for handouts). A lot of those features are only available when using the printer driver provided by the manufacturer and not available in the default (say, PostScript) drivers.
    – obaqueiro
    Aug 19, 2011 at 13:52
16

I think it's a relic of history.

On the PC side printers have evolved from the character-by-character bunch (so, you send ASCII to them, they type it out as though they were a typewriter) through the Epson FX80 era (which is ASCII + control codes) into pixels. I think the level of competition and the fact that they were building up from devices that didn't really do graphics meant that, at each new generation of technology, it was just cheaper for the printer manufacturers to add the processing burden on at the driver side.

On the Mac side, the first big splash was the Laserjet, which used Postscript. Postscript is much what you describe —— it's a means to describe a page in text and have it rasterised by whatever interprets the Postscript. It's actually a complete programming language, PDF having been developed sort of as a compiled form, providing the same primitives but (initially, before they started throwing the kitchen sink at it) no programming language. To process Postscript, the original Laserjet had a 68000 just like the Mac it was attached to, though the original Macs were very short on RAM and it probably would have been unrealistic to expect them to be able to render graphics at the scale needed to print within a reasonable time frame.

The legacy of Postscript as the way to communicate with a printer lives on in Linux where Ghostscript, a software Postscript renderer, was the standard printer driver for a long time before CUPS (which is still heavily connected to Postscript) became the thing.

I think the cost advantages of not including a Postscript rasteriser are the reason that the PC way won the market, especially as computer power has increased. Apple's new patent looks like a step back from the air print stuff in iOS, which appears to vest a lot of logic back into the printer. I think if we're going to see any progress, it'll be because of the wireless angle where consumers really want to be able to walk up with any of their devices and just hit print.

4
  • Very much a relic. Back in the day there was no standard printer protocol, and every printer manufacturer had their own language. The Wordperfect story Almost Perfect talks a bit about the old days and printer driver madness. Aug 16, 2011 at 17:10
  • Good reading tip; they do seem to have had a lot of problems keeping up with printer technology changes. The small mention that they had a debate around the development of WordPerfect 4.0 on whether documents formatted for a laser printer in the office then taken home should be reformatted permanently shows how backward the thought process used to be: your printer dictated how your document would end up looking, and even the market-leading software had to jump through hoops to try to retain document portability.
    – Tommy
    Aug 18, 2011 at 19:09
  • Thanks. This kind of historical context often makes current computing conventions much more comprehensible. However, wasn't another barrier to Postscript adoption the fact that Adobe held the license and wanted quite steep fees for it's use? I vaguely remember that NeXTStep (the OS) was notable for using Postscript for display as well, and to do that they had to pay Adobe a lot of money.
    – robo
    Nov 8, 2012 at 11:07
  • I think it should be possible for a printer manufacturer to put CUPS+Ghostscript inside a fairly cheap printer without needing to pay software or patent licenses to anybody. Suitable electronics costs $9 retail (e.g. Raspberry Pi Zero) so it should be much cheaper for printer manufacturers than to license anything from Adobe. I'd be surprised if many cheap printers did not run Linux internally already. Jan 6, 2018 at 15:15
12

Do you really need a 500-MB driver to just print?

Chances are you don't. My HP Officejet 6210 has an included CD that has about ~400 MB worth of software, but in reality it has much more than just printing support, among them:

  • Scanning
  • OCR
  • Photo editor
  • Photo manager
  • Faxing
  • etc.

Yes, I agree that they're still bloated, but that's not all for printing. The printer driver isn't that big -- in fact, it's included with Windows 7, and I don't think I've ever seen an included driver be more than a few megabytes big.

So I really doubt that you have a 500-MB driver, but rather 500-MB worth of bundled software.

4
  • 7
    It is a curious evil of Hewlett-Packard that they seem to feel the need to develop yet more terrible, terrible desktop software. Aug 16, 2011 at 8:11
  • 1
    On a more useful note, some printer manufacturers make "driver-only" packages available that just have a .inf descriptor and the necessary binaries. This is usually under a megabyte, and all you have to do is connect up the printer and point the New Hardware wizard at the folder you decompressed it in to (assuming you need to install a driver at all). If you can't find a driver-only package, you can usually use an LZMA decompression tool to extract the actual driver files out of the installer (although it might be tricky to find them). Aug 16, 2011 at 8:13
  • @jcrawfordor only problem is, you have to download 500MB just to extract it, haha. On a side note, sometimes the basic drivers that come with windows work just fine. Like HP PCL 6 driver.
    – Matt
    Aug 16, 2011 at 10:12
  • Valid point but this doesn't answer or really even address the question.
    – Cody C
    Aug 16, 2011 at 17:11
4

The short answer is that printer don't know about every document format in the world, nor do they speak every protocol in the world.

You need some software to

  • convert the format used by FooBar v1.3 to the format understood by a BazJet 3000, which often existed in two parts
    1. A bit that converted the FooBar format to the internal format used by the OS (which lived in FooBar).
    2. A bit that converted from the operating system's internal format to the format used by the printer. This was one part of the printer driver.
  • convert operating system abstraction in to bits on a wire that the printer could understand. This was another part of the printer driver.

Now, there are several things that you can do to simplify this situation:

  • You can settle on one or a small group of formats for the printer to use. The long standing example here is postscript printer---by sending generic postscript you could print to just about any PS printer without a format converter.

    The problem with that from the home user's perspective has always been that it made the printer more expensive because it needed to have a non-trivial processor and a significant amount of memory in the printer (i.e. the printer is another computer).

  • You can use a one or a small group of (1) physical connectors and (2) protocols to talk to the printer. These days this means (1) ethernet, WiFi, or bluetooth and (2) ipp (say).

    Again, the limitation has always been that it drives up the cost of the hardware.

The good news is that Moore's has been working for long enough that the added cost is becoming trivial.

2
  • Nowadays you can get Raspberry Pi Zero for around $7-9 which contains a 1GHz ARM processor and 512 MB of RAM. It even has HDMI output which is not required for a printer. Hardware costs should not prevent manufacturers from including Ghostscript + CUPS inside the printer if they can mass produce their own motherboard. Jan 6, 2018 at 15:26
  • Well, yeah. Another five and a half years of "Moore's [law] has been working for long enough that the added cost is becoming trivial." Jan 6, 2018 at 17:55
3
  1. A very minimal printer driver would be tiny < 100KB, and as mentioned before, usually follows one of two common standard interface languages, PCL or Postscript. Most printers are designed to understand these languages, but may add proprietary languages of their own to extend features/fonts not covered by the standard.

  2. A basic printer driver designed specifically for your model of printer takes it up a few notches. It may be about one megabyte or so. This will include the basic PCL language set to interface with the printer, but probably also include access to print features like portrait/landscape, draft toner use, collation, two sided printing, paper type, watermark, paper size, 2-up printing, margins, resolution, etc.

  3. A printer software package gets mammoth, and is probably what you are looking at at 500MB. these include all kinds of software components ranging from useful, to dubious, to pure crapware. Included are things like scanner utilities, OCR features, scan-to-pdf, printer maintenance, printer setup, printer LAN setup, print server software, fax software, photo scan software, photo/media management software, trial versions of partner software, supply ordering software, printer monitor taskbar software, etc. etc.

The list of crapware is pretty bad. And it's not just that it takes up 500MB of storage. Lots of this crap is installed to run at Windows bootup, so that it is taking up your PCs resources like memory and processor all the time. Do you really need a printer utility running in your taskbar? No, you don't.

Basic PC users might just be better off installing the damned bloated CD of software. But medium-savvy users, or those with a savvy friend, are better off skipping the CD bundled software pacakge, going to the OEM website, and finding the basic driver. For example, on the page that I will link to below, you see that there are a variety of download choices for just one printer and one OS (Windows 7 64-bit).

The "Full Driver And Software Package" is 100MB. This is the simple one that has bloat, but you just follow the instructions and you're set. Then, they offer a variety of utilities. At the end, you see "Drivers (For Advanced users)"; this is where the basic driver resides, and it's just 1.02MB.

This small download is the one that I normally use. Note that it will not use a "wizard" to install, like the bloated package. Instead, you will have to know how to manually install a printer in Windows using the "add printer wizard" and the "have disk" option, at which point you will point it at the 1.02MB driver file. If it is a network printer, you may have to know how to create an IP port to the local LAN address of your printer. I guess we start to see why this isn't for newbies. Not too hard, but not too easy either.

Example download options:

http://welcome.solutions.brother.com/bsc/public/us/us/en/dlf/download_index.html?reg=us&c=us&lang=en&prod=hl2040_all&dlid=&flang=English&os=93&type2=-1

2
  • What I find frustrating is that #2 the more basic stuff in #3 (ink/error level reporting, lan setup) along with equivalent items for the scanner in all in one units are needed by most/all printers these days. If it could be added to either PCL or a successor language a universal driver/os control center that provided everything normal users needed would be possible. I understand the printer makers not admitting all the crapware they've written should be thrown away; but printer/scanner installs are one of the ugliest parts of win setup and wonder why MS has never done anything here. Oct 11, 2011 at 19:47
  • Turns out MS is adding class drivers that are estimated to be compatable with 80-90% of existing printers to windows 8. With Apple also looking at universal printing options we might be looking at the end of the entire driver class in a few years. anandtech.com/show/5630/… venturebeat.com/2012/02/29/… Mar 20, 2012 at 20:47
1

Just an FYI, look for the "IT network distribution" driver bundle or something like that. It will have just the drivers, and not all the bloatware. Alternatively, you can try to extract the setup files, and locate the driver yourself (just have the OS search for the driver and not install the software).

Printers do not require 500 MB worth of drivers. The drivers are usually well under 5 MB (because they do have to include some basic software). The drivers usually provide maintenance software with them, which allows you to print vendor-specific test pages, calibrate ink cartridge alignment, or warn you when the ink is low.

1

I've seen people talk about bloatware and printer communication standards here, but I think that one important thing was missed in the discussion.

Many new cheap printers do not do any processing on their own at all. Instead they require host computer do process the data which will be printed directly into a page using a proprietary format. This simplifies the hardware side of things. A traditional color laser printer will have embedded computer which has capabilities of a desktop computer from 5 to 10 years ago and the major problem with that is that hardware for such embedded computers is expensive. There's also the licensing issue with PostScript for example where each printer must pay license in order to use it natively. So to circumvent that, a cheaper embedded computer is used which uses a simpler page description language, usually proprietary and undocmented in order to decrease the cost. Then it's the host computer's job to actually process the data which will be printed. Similar thing happened to fax modems as the market demanded price decrease for them, so now there are so called "winmodems". Printers such as those I described are sometimes called "winprinters". The win part comes from the sad fact that most of them have only drivers for windows.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .