Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I have a humble Brother HL-1110 monochrome laser printer with 1MB of RAM. That's pretty short and, in the beginning, I thought I was only going to be able to print plain text documents or small PDF documents because laser printers need to store the entire page in their memory before they actually print it.

But, for some reason, this doesn't seem to be the case. Many of my prints are well above 1MB, and some are at around 40MB per page (at least that's what CUPS claims to be the case).

I'm very glad I can print large documents but I'm also confused. Presumably, my printer should run out of memory; but it doesn't. Why is that?

share|improve this question
    
Just found tomshardware.co.uk/forum/2294-3-printer-memory-work which is an interesting discussion on stuff to add to the answers below. –  Chris May 25 at 22:45
    
You're lucky, I have the exact same printer and it often fails with an "Out of memory" error while printing even simple files. It does manage sometimes to print larger ones, but the printer can and does run out of memory. The official troubleshooting solution for this is: "Reduce the complexity of your document or lower the print quality". –  dhekir Nov 16 at 0:03

3 Answers 3

up vote 2 down vote accepted

You can't print a page that won't fit in 1MB. It's not possible to stream information to the printer as it needs it. The entire page must fit in memory.

At 300DPI, you need 10.98KB per square inch (300*300/8/1024) to permit any possible output. If you multiply this by the printable area of a standard piece of paper, you get 984KB (10.98 * 8.3 * 10.8). So 1MB is sufficient to print an entire page at 300DPI.

Compression can be used to allow a page to include some portions at higher resolutions, and the driver should be smart enough to do the best job it can rendering the page you print in the memory available.

share|improve this answer
    
Why exactly do you divide by 8 and then by 1024? –  gpo May 25 at 22:27
    
There are 8 bits in a byte and 1,024 bytes in a kilobyte. So you need 300*300 bits, or 300*300/8 bytes, or 300*300/8/1024 kilobytes. –  David Schwartz May 25 at 22:32
1  
Does each dot not have an intensity of some kind? I assumed much like a pixel on a screen that in monochrome you'd still have 8 bits/1 byte of intensity information. –  Chris May 25 at 22:34
    
Also as a note you seem to be referring to "letter" format paper as your standard whereas most of the world use A4 which is slightly larger in area (8.267*11.692). Being pedantic but its worth stating the exact format of paper you are using since "standard" varies by country. Of note is that I assume this reasoning is broadly correct and compression answers any last bits of question. –  Chris May 25 at 22:41
    
Just to annoy you: The term "monochrome" is maybe not uniquely defined. Wikipedia, for instance, makes a difference between 8-bit Grayscale and 1-bit Monochrome (en.wikipedia.org/wiki/Binary_image) but also mentions that Grayscale is sometimes referred to as Monochrome. "Monochrome" means "one color", but still it is unclear whether intensity is included in the term or not (cf. en.wiktionary.org/wiki/monochrome). @DavidSchwartz You are also not exactly right. 1024 Byte are not 1 Kilobyte but one Kibibyte. 1000 Byte are 1 Kilobyte. –  Lukas May 25 at 22:51

Your printer will not run out of memory as you think. The memory holds what is necessary to print what is there at the time, the moment it processes that, it is available to be "re-filled". The "document" flows through the printer, nothing is retained. It is a buffer. As @Keltari says below, it can also be used to store printer fonts.

share|improve this answer
    
OK, so that 1MB is more like a buffer, right? And, in that case, would you know when does a job fail? Because I've had that happen too. –  gpo May 25 at 15:45
    
It's a buffer. There will be a notification )usually somewhere on your desktop depending on your system) that the print operation has failed. –  Xavierjazz May 25 at 17:00
1  
Some printer memory is used to store printer fonts, as well –  Keltari May 25 at 17:01
    
I'm sorry, I must have expressed myself poorly. I wanted to know the circumstances under which a job fails, and not how I get notified. Is it, for example, when a buffer overflow/underflow happens? Does the printer need a steady data flow? Just curious. –  gpo May 25 at 20:59

As David said; just because a page that you are printing is >1MB, doesn't mean that the image sent to the printer is the same size.

A Word doc, for example, will hold loads of information within the file;

  • the actual text on the page

  • the font of the text

  • the size of the font

  • the text colour

  • background colour

I could go on. However, when its sent to the printer, the printer does not need to know the name of the font or the size of the font or even what is highlighted. It will just be told "print this colour in this place".

Imagine the page to be a huge grid. The PC will tell the printer "you need to print black from 'cell' A1 to D5".

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.