Re: Printer buffer: does size matter?



Robert Heller wrote:
  "Dan" <luecking@xxxxxxxx>,
  In a message on 1 Dec 2005 09:04:01 -0800, wrote :

"> Patrick TJ McPhee wrote:
"> > In article <1133380521.528551.229590@xxxxxxxxxxxxxxxxxxxxxxxxxxxx>,
"> > Dan <luecking@xxxxxxxx> wrote:
"> >
"> > % To be able to print a file, the printer needs enough memory to generate
"> > % one scan line for the laser.
"> >
"> > To be able to print a page, a laser printer needs enough memory to
"> > generate the page. This can be a lot or a little depending on how
"> > the page is created. e.g., a page of text using printer fonts will
"> > require little memory, while a page of layered graphics might
"> > require a great deal.
"> "> I was speaking theoretically. I have no idea what the actual practice
"> is. But I would consider a printer badly designed if it had no way to
"> handle partial pages in its memory.
"> "> My understanding is that a laser is used to alter the surface of a
"> rotating drum and when the drum has an entire page, it is used to
"> transfer toner to paper. *If * the laser does the writing to the drum
"> a line at a time the printer *could* retrieve one line from the buffer
"> and, while sending that line to the drum, another *could* be sent to
"> the buffer (dot matrix printers would do the analogous thing directly
"> onto paper and get by with very small memory).
"> "> I do know that I have printed a full page graphic on printers with less
"> than 1MB of memory so there would seem to be some strategy to receive
"> less than a page at a time, or perhaps some compression scheme. In my
"> experience, almost never do printers just refuse (except some
"> postscript printers -- where any part of the PS code can alter any part
"> of the page), though often they slow down drastically.


Generally, a *laser Postscript* printer has a screen buffer, internal
working memory (for the postscript stacks, dictionaries, etc.), plus an
input buffer (fifo connected to the I/O port).  At least this is what
it *logically* needs to have.  Generally, the PostScript 'engine' is
running on some sort of embedded processors (some early models had a
68000 processor).  This processor runs a program something like
ghostscript.  How this relates to the 'buffer size' in the specs is not
clear and probably depends on how the internal processor's memory is
arranged.  It could be that the 'screen buffer' is like video RAM - it
is not counted as part of main memory.  Also the 'buffer' can be just
the memory directly connected to the I/O port, and the main memory and
'video RAM' are counted separately.

I don't think a *Postscript* can generate one scan line at a time -- the
Postscript language is 'random access' and can draw stuff all over the
page in any random order.  A whole 'page' has to be buffered somehow.

Inkjets all do one head's worth of scans line at a time and when
converting from postscript to inkjet, generally via GhostScript,
the conversion program (GhostScript) has the page buffer in host
computer memory, which is then written line by line to the printer (via
a pipe or a file).


"> "> "> Dan
"> ">


\/
Robert Heller ||InterNet: heller@xxxxxxxxxxxx
http://www.deepsoft.com/ ||FidoNet: 1:321/153 http://www.deepsoft.com/~heller /\








A 600 d.p.i. monochrome laser printer would only require a single bit of memory for each possible dot on the page. Pretend we are printing on A4 at 600 d.p.i (for consistency we will stick with Imperial).


A4 is 11.7 inches in height and 8.25 inches in width. At 600 d.p.i., that equals 7020 dots high and 4950 wide. These multiplied give 34,749,000. Divide that by 8 * 1024 ^ 2 to get roughly 4.14 megabytes. This is assuming the printer can print right to the very margins of the page. Wouldn't it require at least this much memory to print a full-page graphic?

David.
.



Relevant Pages

  • Re: Discovering variable types...
    ... >- but I suppose MS expect us to use wrappers ... memory allocations for your variables from disk as well. ... >They most certainly are of fixed size, changing the size of a String ... >>me to keep buffer size and current postion right in the memory block. ...
    (comp.lang.pascal.delphi.misc)
  • Re: Printer buffer: does size matter?
    ... >> converting from postscript to inkjet, generally via GhostScript, ... >> the conversion program has the page buffer in host ... > memory for each possible dot on the page. ... A print buffer reduces the number of requests, ...
    (comp.text.tex)
  • Re: Discovering variable types...
    ... >memory it points to is on the heap. ... sequentially reading data, if one is randomly reading records, then a ... >project is what's prompting me to improve disk access. ... from a memory buffer I can do it in about a second. ...
    (comp.lang.pascal.delphi.misc)
  • Re: Multicast Directshow Graph Bridging, COW Rustling, & the Use of Portable Holes in Cartoon Ph
    ... memory to share buffer pools across processes and works pretty well. ... You get two basic Direct Show filters, ... issue each GMF-source a virtual memory alias with COW ...
    (microsoft.public.win32.programmer.directx.video)
  • Re: PCI bus-master and large contiguous memory buffers
    ... I built my scatter gather list in SRAM that was on my device, ... could have done it in system memory had I needed to. ... interrupt when a buffer was filled, the application would save the buffer to ... beginning of the recording I made a device IO control call to my driver. ...
    (microsoft.public.development.device.drivers)