Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

OT: printing PostScript files

8 views
Skip to first unread message

William Sommerwerck

unread,
Nov 13, 2009, 12:14:03 PM11/13/09
to
This might be of use to those printing out PostScript-rendered documentation
(schematics, manuals, etc).

I've always had PostScript printers. They're particularly useful when
producing documents that have to be sent to a service bureau for
printing/publishing, because most commercial photosetting systems are
PostScript-based. What I see at home is /exactly/ what the final document
will look like.

I've been printing out user manuals -- four sheets to a page -- for my
Olympus and Canon cameras. Canon will no longer sell user manuals, so having
a printout is handy -- you don't have to worry about damaging or destroying
the Canon original. And a binder with the pages in professional vinyl sheet
protectors makes a handy field reference. You can write on the sheets, or
stick PostIt notes on them, again without messing up the original.

Anyhow... I'd had no problems until I got to the EOS-1V manual. Some
pages -- mostly those with halftones -- simply would not print. The printer
(an HP 4M) would chug away "forever" to render the page, the Ready light
blinking. Then the Ready light would come on steady -- indicating that the
image was fully rendered -- but nothing would print.

To make a long story short, I read the PostScript Help, and (following its
subtle "do this if everything else fails" suggestion) selected the "Print as
bitmap" Advanced option. This sends the rendered bitmap -- not the
PostScript commands -- to the printer.

Not only did every page print, but it printed more quickly. Apparently, the
computer renders the image much more quickly than the processor in the
printer. And it can render things the printer gets stuck with.

So... if you're having problems, switch to "Print as bitmap".

--
"We already know the answers -- we just haven't asked the right
questions." -- Edwin Land


hr(bob) hofmann@att.net

unread,
Nov 13, 2009, 12:35:30 PM11/13/09
to
On Nov 13, 11:14 am, "William Sommerwerck"

Great information - I like paper copies, but some manuals are too big
to waste paper. 4 per page is the only reasonble way and using bitmap
is fine.

William Sommerwerck

unread,
Nov 13, 2009, 12:59:38 PM11/13/09
to
> Great information -- I like paper copies, but some manuals
> are too big to waste paper. Four per page is the only reasonble

> way and using bitmap is fine.

I goofed. It's actually "Print as image" -- same difference.

Part of the problem is that when you print four to a page, you have to
render four pages, rather than just one. This slows down the process.


D Yuniskis

unread,
Nov 13, 2009, 2:32:28 PM11/13/09
to

Use a postscript renderer (i.e., a piece of software *in*
the PC) instead of a postscript *printer*. Printers usually
don't have the same horsepower available to them as modern
PC's. You also have all of the PC's memory to exploit for
this purpose (fonts, etc.).

The tradeoff is you now have to send an *image* of the page
to the printer which is usually more data than using an
abstract PDL.

William Sommerwerck

unread,
Nov 13, 2009, 2:28:00 PM11/13/09
to
> Use a postscript renderer (i.e., a piece of software *in*
> the PC) instead of a postscript *printer*. Printers usually
> don't have the same horsepower available to them as modern
> PC's. You also have all of the PC's memory to exploit for
> this purpose (fonts, etc.).

That's exactly what I wrote. QV


Robert Macy

unread,
Nov 13, 2009, 2:34:09 PM11/13/09
to
On Nov 13, 9:59 am, "William Sommerwerck" <grizzledgee...@comcast.net>
wrote:

Once the HP LaserJet printer did this, too. Kept locking up and
failing, had to continually Power OFF reboot the printer. After
installing a 'special' buffer driver from HP, worked great. It seems
when the meory in the printer gets full [like when the PC runs faster
than the printer], HP printer has the flawed response of locking up.

D Yuniskis

unread,
Nov 13, 2009, 3:38:59 PM11/13/09
to

Sorry, I have perhaps not been clear enough...

(below)

> I've always had PostScript printers.

[snip]

> The printer (an HP 4M) would chug away "forever" to render
> the page, the Ready light blinking.

The 4M is a PostScript printer ("M" for "Macintosh") setting
it apart from the regular LJ4. (Adding the "+" signifies
a faster marking engine -- in the LJ4+ and LJ4M+)

[snip]

> Not only did every page print, but it printed more quickly.
Apparently, the
> computer renders the image much more quickly than the processor in the
> printer. And it can render things the printer gets stuck with.

But you are still printing to a PostScript printer *encapsulating*
the bitmap as a PostScript file. So, the printer has to treat
it as such.

If you just use a generic PostScript interpreter talking to a
*non* PostScript printer, you can usually get faster throughput
as non-postscript printers don't have the same overhead as
PostScript (i.e., "PostScript" itself takes up memory in
the printer). You can then print at the speed of the *marking*
engine instead of the print engine.

Note that you can end up *losing* quality going this route
as the marking engine doesn't know what was intended in the
image -- it has to rely on the bitmap provided to it
exclusively. Often, it is hard to pinpoint where the loss
in quality comes from (e.g., some renderers can't handle
beziers/splines as well as "genuine" PostScript does)

William Sommerwerck

unread,
Nov 13, 2009, 5:31:04 PM11/13/09
to
>> Not only did every page print, but it printed more quickly.
>> Apparently, the computer renders the image much more
>> quickly than the processor in the printer. And it can
>> render things the printer gets stuck with.

> But you are still printing to a PostScript printer *encapsulating*
> the bitmap as a PostScript file. So, the printer has to treat
> it as such.

But it doesn't have to /render/ anything -- just dump the bits to the drum.


> If you just use a generic PostScript interpreter talking to a

> *non* PostScript printer...

That won't work.

This "Print as image" is available only for the PostScript driver.


> you can usually get faster throughput
> as non-postscript printers don't have the same overhead as
> PostScript (i.e., "PostScript" itself takes up memory in
> the printer).

No, it doesn't. It's in ROM, and "consumes" zero memory.


Michael A. Terrell

unread,
Nov 13, 2009, 7:37:19 PM11/13/09
to


How much memory does the 4M printer have?


--
The movie 'Deliverance' isn't a documentary!

D Yuniskis

unread,
Nov 13, 2009, 7:48:04 PM11/13/09
to
William Sommerwerck wrote:
>>> Not only did every page print, but it printed more quickly.
>>> Apparently, the computer renders the image much more
>>> quickly than the processor in the printer. And it can
>>> render things the printer gets stuck with.
>
>> But you are still printing to a PostScript printer *encapsulating*
>> the bitmap as a PostScript file. So, the printer has to treat
>> it as such.
>
> But it doesn't have to /render/ anything -- just dump the bits to the drum.

PostScript is a *programming language*. When you send a PostScript
file to a printer, you are sending a PROGRAM to a COMPUTER (which
just so happens to *look* like a PRINTER!). The computer runs
that program (interprets that program) and, based on what the
program says, it *may* decide to put some marks on the paper.

I.e., I can send a PS file to a printer that includes a list of
the amounts of all of the checks I had written in the past month
and tell the *printer* ("computer") to sum these values and
print the result with the words: "You wrote checks totaling $"
in front of it.

With this in mind, when you send an "iimage" to a postscript
printer, you are sending some representation of that image
(consider this "data") along with a *program* that tells
the computer (printer) how to interpret that data (image)
and mark the paper accordingly.

>> If you just use a generic PostScript interpreter talking to a
>> *non* PostScript printer...
>
> That won't work.
>
> This "Print as image" is available only for the PostScript driver.

<grin> You might want to check that again. On my old
W2K machine, I can select "print as image" for any of
the printers that I currently have installed. These include
an LJ6P, LJ4M+ (ok, that's a PS printer so it doesn't count),
DPP-EX50, several Epson printers, etc.

See the example below.

>> you can usually get faster throughput
>> as non-postscript printers don't have the same overhead as
>> PostScript (i.e., "PostScript" itself takes up memory in
>> the printer).
>
> No, it doesn't. It's in ROM, and "consumes" zero memory.

No, the *interpreter* is in ROM. But the interpreter needs
RAM to remember what it is doing!

For the example I cited above: the PS file (program) is
downloaded into the printer. It sits in RAM. Then, the
interpreter starts up and "runs" the program in that PS file.

I took a single page B&W document (mostly text but a small
photo and maybe a chart or somesuch). I printed it to
a LJ6 printer "as an image". The result was 507KB.

I took the same single page and printed it to the
"Generic Postscript Printer" (AdobePS driver) also
as an image. I.e., this is what you get when you
wrap that "507KB LJ6 image" in a PS format. The file
was 2,873KB -- almost 6 times larger!

Finally, I took the same single page and printed it
to the "Generic Postscript Printer" (AdobePS driver)
but *not* as "an image". I.e., this is a genuine
PS rendering of the page -- you can actually read
the text that will be printed by examining the
contents of the file. The result was 845KB.

So, if you are printing to a postscript printer, you
are sending 845KB of data to the printer. From this,
the printer will create the actual dots to fill the page.
When you take the same document and print it "as an image"
to the *same* postscript printer, then you send 2.8MB
of data to do the same job!

If you look at the actual data being sent to these three
printers, you will quickly see that the LJ6P data is
very dense binary. OTOH, the PS data is more abstract
(less dense) and easily readable:

===================
%!PS-Adobe-3.0
%%Title: PAXI 02021.pdf
%%Creator: PScript5.dll Version 5.2
%%CreationDate: 11/13/2009 16:49:56
%%For: Administrator
%%BoundingBox: (atend)
%%Pages: (atend)
%%Orientation: Portrait
%%PageOrder: Special
%%DocumentNeededResources: (atend)
%%DocumentSuppliedResources: (atend)
%%DocumentData: Clean7Bit
%%TargetDevice: (Generic PostScript Printer) (2010.0) 2
%%LanguageLevel: 2
%%EndComments

%%BeginDefaults
%%PageBoundingBox: 18 8 593 784
%%ViewingOrientation: 1 0 0 1
%%EndDefaults


%%BeginProlog
%%BeginResource: file Pscript_WinNT_ErrorHandler 5.0 0
/currentpacking where{pop/oldpack currentpacking def/setpacking
where{pop false
setpacking}if}if/$brkpage 64 dict def $brkpage begin/prnt{dup
type/stringtype
ne{=string cvs}if dup length 6 mul/tx exch def/ty 10 def
currentpoint/toy exch

...
===========

To further illustrate the nature of the PS file as
being a *program*, here are a few other "easy to
understand" snipets from the same *document*:

/m {moveto} def
/l {lineto} def
/c {curveto} def

these three lines define the three symbols m, l and c
to represent the moveto, lineto and curveto "commands".
I.e., these are effectively *abbreviations*.

385 274 m
180 274 l
179 283 179 293 179 303 c
179 310 179 316 180 323 c
398 323 l
423 404 l
197 404 l
219 477 273 520 357 520 c
409 520 466 490 487 454 c
487 389 l
579 389 l
579 612 l
487 612 l

These lines then invoke each of these "commands"
to make marks on the paper. The first statement
moves from the "current location" (wherever that
happens to be at the time) to the location
(385, 274). From there, a line is drawn to the
location (180, 274). Then, a Bezier curve is
drawn to the point (179, 303) using the points
(179, 283) and (179, 293) as control points to
shape the curve. This is followed by more curves,
lines, moves, etc.

The PostScript interpreter knows how to draw lines,
make Bezier curves, etc. But, the software (in the
interpreter) to draw these things needs memory to
keep track of what it is doing -- how far along the
line have I progressed? What difrection am I headed?
Have I reached the end point yet? etc.

If you can tell me how this is done while consuming
"zero memory"... ;-)

William Sommerwerck

unread,
Nov 13, 2009, 7:47:08 PM11/13/09
to
>>> But you are still printing to a PostScript printer *encapsulating*
>>> the bitmap as a PostScript file. So, the printer has to treat
>>> it as such.

> > But it doesn't have to /render/ anything -- just dump the bits to the
drum.

> PostScript is a *programming language*.

No, it's not. It's a way of describing what will be printed. This requires
interpretation -- which is not the same as running a program. The
interpretation produces a bitmap that the printer prints. (That's all it can
print.)

PostScript natively supports bitmaps. When you dump a rendered page to the
printer in PostScript bitmap format, all the printer has to do is transfer
it to the drum. No interpretation is needed.


>>> you can usually get faster throughput
>>> as non-postscript printers don't have the same overhead as
>>> PostScript (i.e., "PostScript" itself takes up memory in
>>> the printer).

>> No, it doesn't. It's in ROM, and "consumes" zero memory.

> No, the *interpreter* is in ROM. But the interpreter needs
> RAM to remember what it is doing!

Read what you wrote: "PostScript" itself takes up memory in the printer." It
takes up no memory.


William Sommerwerck

unread,
Nov 13, 2009, 7:53:39 PM11/13/09
to
> How much [RAM] memory does the 4M printer have?

I don't know (and don't care at the moment to print a test page). I assume
it's around 64MB. I don't think lack of memory is the problem -- after all,
the printer had no trouble with a 22MB bitmap dump -- roughly 10 to 20 times
what's required for "descriptive" PostScript. That's about one byte for each
bit on a 300dpi 8x11 page.


This is getting out of hand. (Nothing personal, Michael.) There's sometimes
little point in posting anything, because it's bound to be overanalyzed for
all the WRONG reasons. The issue isn't that the printer couldn't handle
plain PostScript, but rather that there was a SOLUTION to the problem. I
wasn't asking for an analysis, but offering help.


D Yuniskis

unread,
Nov 13, 2009, 8:43:54 PM11/13/09
to
William Sommerwerck wrote:
>>>> But you are still printing to a PostScript printer *encapsulating*
>>>> the bitmap as a PostScript file. So, the printer has to treat
>>>> it as such.
>
>>> But it doesn't have to /render/ anything -- just dump the bits to the
> drum.
>
>> PostScript is a *programming language*.
>
> No, it's not.

From _The PostScript Language Reference Manual (2nd Ed)_
by Adobe Systems Incorporated, Page 1, first sentencce:

"The PostScript language is a simple INTERPRETIVE
PROGRAMMING LANGUAGE (emphasis mine) with powerful graphics
capabilities.

I stand by my statement. :>

> It's a way of describing what will be printed. This requires
> interpretation -- which is not the same as running a program. The

No, you are mistaken. It *is* a program. Just like BASIC
was a programming language that was *typically* interpreted.
As I stated in previous post: I can send a PS *program*
to the printer that balances my checkbook! It need not
even print the balance as a set of numeric digits. It
could, for example, eject N sheets of paper where N is the
number of dollars remaining in my checking account!
(though it seems like simply printing the balance would be
easier)

> interpretation produces a bitmap that the printer prints. (That's all it can
> print.)
>
> PostScript natively supports bitmaps. When you dump a rendered page to the
> printer in PostScript bitmap format, all the printer has to do is transfer
> it to the drum. No interpretation is needed.

Do yourself a favor and *read* the language specification.
Read some PS "code" (files). It is a simple S-machine
language -- easy to implement.

>>>> you can usually get faster throughput
>>>> as non-postscript printers don't have the same overhead as
>>>> PostScript (i.e., "PostScript" itself takes up memory in
>>>> the printer).
>
>>> No, it doesn't. It's in ROM, and "consumes" zero memory.
>
>> No, the *interpreter* is in ROM. But the interpreter needs
>> RAM to remember what it is doing!
>
> Read what you wrote: "PostScript" itself takes up memory in the printer." It
> takes up no memory.

PostScript uses the memory to run itself. I.e., if
you have a 600dpi printer, you should never need
more than 4MB in your printer! Just buffer up the
image and then pass it on to the marking engine.

I can create a 300MB PS file that does nothing more than
print a single dot.

I can create a 1KB PS file that will pring 5,000 pages!

I can write a PS file that just sits and tries to compute
Pi and never prints *anything*.

As I -- and Adobe -- have said, PS is a programming language.
As such, there are variables, control structures, pushdown
stack, etc. All of these reside in memory and are NOT "dots".
So, they aren't part of the image. They are memory that
"PostScript itself takes up ... in the printer."

Here's a program to calculate pi -- try doing in that in PCL5:

%!PS-Adobe-2.0
%%Title: Calculate Pi in PostScript
%%Creator: Frank Martin Siegert [fr...@this.net] - http://www.this.net/
%%Date: 23. November 1996 02:23
% Updated 2. April 1998 23:40
%%BoundingBox: 0 0 592 792
%%DocumentNeededFonts: Courier Courier-Bold
%%EndComments

% Enter your desired number of digits here, min. 20, max. 262136
% Be prepared to wait a long time for anything > 1000

/ndigits 1000 def

% If your printer fails with a timeout error try to uncomment the next line
% this will give you one hour extra time...

% statusdict begin 3600 setjobtimeout end


% Some defines for startup

/i 0 def
/str4 4 string def
/nblock ndigits 4 idiv 2 sub def
/t1 nblock 1 add array def
/t2 nblock 1 add array def
/t3 nblock 1 add array def
/tot nblock 1 add array def
/base 10000 def
/resstr 4 string def

% Define the page sizes and margins

/pagemargin 60 def
/lineheight 12 def
/pageheight 792 lineheight sub pagemargin sub def
/pagewidth 592 pagemargin sub def
pagemargin pageheight moveto
/bigfont {
/Courier-Bold findfont 36 scalefont setfont
} bind def
/smallfont {
/Courier findfont 12 scalefont setfont
} bind def

/scratch 16 string def

% Define bigmath routines - still a bit suboptimal
% (direct ported from the C implementation by Roy Williams)

/bigadd { % increment result
/result exch store
/increment exch store
0 1 nblock 1 sub {
nblock exch sub /i exch store
result i get
increment i get
add dup base ge {
base sub
result exch i exch put
result dup i 1 sub get
1 add i 1 sub exch put
} {
result exch i exch put
} ifelse
} for
} bind def

/bigsub { % decrement result
/result exch store
/decrement exch store
0 1 nblock 1 sub {
nblock exch sub /i exch store
result i get
decrement i get
sub dup 0 lt {
base add
result exch i exch put
result dup i 1 sub get
1 sub i 1 sub exch put
} {
result exch i exch put
} ifelse
} for
} bind def

/bigmult { % factor result
/carry 0 store
/result exch store
/factor exch store
0 1 nblock {
nblock exch sub /i exch store
result i get factor mul
carry add
dup /carry exch base idiv store
base mod
result exch i exch put
} for
} bind def


/bigdiv { % denom result
/carry 0 store
/result exch store
/denom exch store
0 1 nblock {
/i exch store
result i get carry base mul add
dup denom mod /carry exch store
denom idiv
result exch i exch put
} for
} bind def

/bigset { % rhs result
/result exch store
/rhs exch store
0 1 nblock {
result exch 0 put
} for
result 0 rhs put
} bind def

/bigzero { % result
/result exch store 1
0 1 nblock {
result exch get 0 ne { pop 0 exit } if
} for
} bind def

/bigcopy { % from result
copy pop
} bind def

/bigprint { % result
/result exch store
bigfont result 0 get str4 cvs onpage smallfont (.) onpage
1 1 nblock {
result exch get str4 cvs resstr 0 (0000) putinterval resstr
exch dup length 4 exch sub exch putinterval resstr onpage
} for
} bind def

/bigatan { % onestep denom w2 w1 result
/result2 exch store
/w1 exch store
/w2 exch store
/denom exch store
/denom2 denom denom mul store
/onestep exch store
/k 1 def
1 result2 bigset
denom result2 bigdiv
result2 w1 bigcopy
{
onestep 0 ne {
denom2 w1 bigdiv
} {
denom w1 bigdiv
denom w1 bigdiv
} ifelse

w1 w2 bigcopy
k 2 mul 1 add w2 bigdiv
k 2 mod 0 ne {
w2 result2 bigsub
} {
w2 result2 bigadd
} ifelse
/k k 1 add store
w2 bigzero 1 eq { exit } if

} loop
} bind def

% Define output routines

/didpaint false def
/onpage {
/didpaint true store
show
currentpoint exch pagewidth ge {
pagemargin exch lineheight sub moveto
currentpoint exch pop pagemargin le {
showpage
pagemargin pageheight moveto
/didpaint false store
} if
} { pop } ifelse
} bind def

% Using Machin's formula: pi/4 = 4 arctan(1/5) - arctan(1/239)

1 5 t2 t1 tot bigatan 4 tot bigmult 2 239 t2 t1 t3 bigatan
t3 tot bigsub 4 tot bigmult tot bigprint

didpaint { showpage } if

%%EOF

Jeff Liebermann

unread,
Nov 14, 2009, 12:15:27 AM11/14/09
to
On Fri, 13 Nov 2009 16:53:39 -0800, "William Sommerwerck"
<grizzle...@comcast.net> wrote:

>> How much [RAM] memory does the 4M printer have?
>
>I don't know (and don't care at the moment to print a test page). I assume
>it's around 64MB.

Standard RAM for the HP4m is 6 MBytes. I used one in the office for a
few year. It's also slow (8 ppm). With only 6MB of RAM, I could
barely print anything from my office Mac Cube. It would frequently
spend 10-15 minutes uploading some gigantic file, and then just quit.
Maximum RAM for the HP4m with the Postscribble (Level 2) SIMM
installed is 26MBytes. If you have an HP4m+, it will take up to
50MBytes. If you have some Fast Page Mode SIMMs, they should work. I
loaded mine with something less than 26MB (I forgot the exact amount)
and still managed to over flow the buffer.

Also, if you're using Windoze, go to the properties for the print
driver and tell it how much RAM you have installed. The HP4m will not
return config info to the driver. If you forget to do that, the
Windoze driver will default to 2MB and your printing performance (and
reliability) will suffer.

--
# Jeff Liebermann 150 Felker St #D Santa Cruz CA 95060
# 831-336-2558
# http://802.11junk.com je...@cruzio.com
# http://www.LearnByDestroying.com AE6KS

Michael A. Terrell

unread,
Nov 14, 2009, 2:55:07 AM11/14/09
to


The problems you pointed out are common with too little RAM.

I have several older laser printers with 2 MB (or less) of RAM that
are only good for text. Any graphics look like crap, because there isn't
enough RAM to properly render the postscript. One was an IBM 4019. I
used it for a text only printer for over five years, till the fuser
failed. I wasn't going to spend over $200 to fix a printer I bought for
$10 with an almost full toner cartridge.

William Sommerwerck

unread,
Nov 14, 2009, 7:22:10 AM11/14/09
to
>> I don't know (and don't care at the moment to print a test page).
>> I assume it's around 64MB.

> Standard RAM for the HP4m is 6 MBytes. I used one in the office for a
> few year. It's also slow (8 ppm). With only 6MB of RAM, I could
> barely print anything from my office Mac Cube. It would frequently
> spend 10-15 minutes uploading some gigantic file, and then just quit.

> Maximum RAM for the HP4M with the Postscribble (Level 2) SIMM


> installed is 26MBytes. If you have an HP4m+, it will take up to
> 50MBytes. If you have some Fast Page Mode SIMMs, they should work.
> I loaded mine with something less than 26MB (I forgot the exact amount)
> and still managed to over flow the buffer.

> Also, if you're using Windoze, go to the properties for the print

> driver and tell it how much RAM you have installed. The HP4M will not


> return config info to the driver. If you forget to do that, the
> Windoze driver will default to 2MB and your printing performance
> (and reliability) will suffer.

Thanks for the suggestions. However, the driver has dialog boxes have no
memory-size settings.

I went to a site that sould HP printer accessories, and the standard RAM
size seems to be 16MB. What the default it, I don't know.

The printer had no trouble with 22MB bitmap files. (That's the size the
spooler reported.)

I'll pull out the manual and check, but at the moment there's no need for me
to upgrade the memory. With my luck, the printer will completely fail one
week after I install the expanded RAM.

I wouldn't mind having a faster printer, but the 4M is such a good product,
that I have no intention of ever giving it up, until it can't be repaired or
cartridges aren't available.


William Sommerwerck

unread,
Nov 14, 2009, 7:32:56 AM11/14/09
to
> The problems you pointed out are common with too little RAM.
> I have several older laser printers with 2 MB (or less) of RAM that
> are only good for text. Any graphics look like crap, because there
> isn't enough RAM to properly render the PostScript. One was an

> IBM 4019. I used it for a text only printer for over five years, till the
> fuser failed.

But I've been using the printer ever since it was introduced without
problems. (I had the LJ II and LJ III prior to that.) And I've been printing
pages with complex graphics all that time, including my own documents, and
the manuals for the Olympus E-500 and Canon 5D2. The Canon 1V manual is the
first document that has ever caused this problem.

I finally gave up and printed the Self Test page. Total RAM is 6144KB. The
PS Configuration page reports Global memory as 2308796 bytes and Local as
1530752 bytes.

Considering how cheap 16MB of RAM is ($8), perhaps I should add some.


Michael A. Terrell

unread,
Nov 14, 2009, 9:32:41 AM11/14/09
to


William, printers don't use standard RAM. It has to match the
printer. Your manual should list the HP part numbers that are
compatible. If not, there should be a number starting with 'C' on your
printer that is the actual HP number. C2066A is the part number listed
on the HP website for that printer. I would keep an eye out for older
HP laser printers people are junking. That module is used in a number
of HP models.

http://www.hpprintermemory.com/hpprintermemory.html is a listing of
the common HP models, but I haven't verified all this information.'

William Sommerwerck

unread,
Nov 14, 2009, 9:53:38 AM11/14/09
to
>> Considering how cheap 16MB of RAM is ($8), perhaps I should add some.

> William, printers don't use standard RAM. It has to match the
> printer.

I know that. I was looking at sites that specifically sold RAM for printers.

I have a service manual, which gives all the correct part numbers.


AZ Nomad

unread,
Nov 14, 2009, 10:19:11 AM11/14/09
to

go to google and search for the part number

Jeff Liebermann

unread,
Nov 14, 2009, 12:09:56 PM11/14/09
to
On Sat, 14 Nov 2009 04:22:10 -0800, "William Sommerwerck"
<grizzle...@comcast.net> wrote:

>However, the driver has dialog boxes have no
>memory-size settings.

Trust me. It's there.
<http://802.11junk.com/jeffl/crud/hp4ram.jpg>

>I went to a site that sould HP printer accessories, and the standard RAM
>size seems to be 16MB. What the default it, I don't know.

That's the added RAM, not the total RAM that can be installed. The
usual increments are 2M, 4M, and 16m FPM SIMM's. (EDO won't work).

See chart at:
<http://en.wikipedia.org/wiki/LaserJet_4>

Please print the test page to see what you actually have installed.

>The printer had no trouble with 22MB bitmap files. (That's the size the
>spooler reported.)

We're not talking about bitmaps here. We're talking about oversized
Postcribble files or small PS files with huge embedded EPS
(encapsulated postscribble) images.

>I'll pull out the manual and check, but at the moment there's no need for me
>to upgrade the memory. With my luck, the printer will completely fail one
>week after I install the expanded RAM.

Free advice: Recycle the printer and get something better and faster.

>I wouldn't mind having a faster printer, but the 4M is such a good product,
>that I have no intention of ever giving it up, until it can't be repaired or
>cartridges aren't available.

I don't call limited memory, slow performance, a tenedency to wrinkle
paper, and 600 dpi to be a good product when for about $150, you can
get an HP2000dtn which doesn't have these problems.


--
Jeff Liebermann je...@cruzio.com
150 Felker St #D http://www.LearnByDestroying.com
Santa Cruz CA 95060 http://802.11junk.com
Skype: JeffLiebermann AE6KS 831-336-2558

William Sommerwerck

unread,
Nov 14, 2009, 12:35:29 PM11/14/09
to
>> However, the driver has dialog boxes have no
>> memory-size settings.

Not under W2K.


> Please print the test page to see what you actually have installed.

I did. I reported it. It's a bit over 6MB.


> Free advice: Recycle the printer and get something better and faster.

Faster, no doubt. Better? No way.

I recently had to print out a discount coupon with fine (decorative) print
in the 2- or 3-point range. It was clean and perfectly legible. The newer
printers have 1200dpi RET. Is that visibly better (except under a loupe)? I
don't know. I doubt it.


> I don't call limited memory, slow performance, a tendency to wrinkle


> paper, and 600 dpi to be a good product when for about $150, you can
> get an HP2000dtn which doesn't have these problems.

The paper wrinkling stopped after I bought the repair kit. (It had never
been a problem.) As for the rest... Show me a laser printer with better
print quality, and I' might consider switching. The 4- and 5-series printers
are classic Canon products. If people weren't happy with the results, HP
wouldn't have the demand needed to justify supplying cartridges.

If I were going to buy a new printer, it would be something like this...

http://www.shopping.hp.com/product/printer/LaserJet/1/storefronts/CE459A%2523ABA

How much would you care to bet that toner cartridges for the 4- and 5-
series printers will still be available long after carts for the P2055dn is
not longer available?

I really don't need a new printer. Maybe... Maybe... when this toner cart is
empty, I might think about a new model. But as long as the printer continues
to work, why should I?

Bob Larter

unread,
Nov 14, 2009, 2:16:38 PM11/14/09
to

GhostScript is your friend.


--
W
. | ,. w , "Some people are alive only because
\|/ \|/ it is illegal to kill them." Perna condita delenda est
---^----^---------------------------------------------------------------

William Sommerwerck

unread,
Nov 14, 2009, 1:19:35 PM11/14/09
to
> GhostScript is your friend.

Why? I have a "real" PostScript printer, and the driver outputs a "real"
PostScript file. What is the problem with that?

I used to do user manuals for a company in Colorado. I sent them PostScript
PRN files for their service agency's PostScript-based Agfa photosetter. Once
in a while there would be a glitch and I'd have to re-do a particular
chapter. (I don't know what causes this.) But otherwise, there were zero
problems, and the final document looked /exactly/ like what came out of my
LaserJet 4M. To paraphrase Otis... "What more could a writer want?"


Bob Larter

unread,
Nov 14, 2009, 2:20:50 PM11/14/09
to
William Sommerwerck wrote:
>>> Not only did every page print, but it printed more quickly.
>>> Apparently, the computer renders the image much more
>>> quickly than the processor in the printer. And it can
>>> render things the printer gets stuck with.
>
>> But you are still printing to a PostScript printer *encapsulating*
>> the bitmap as a PostScript file. So, the printer has to treat
>> it as such.
>
> But it doesn't have to /render/ anything -- just dump the bits to the drum.

Yep, but the driver has to convert the bitmap into a hex-encoded format
to print it via the printers PS interpreter, which slows things down.
If you want to send a bitmap anyway, you're better off sending in PCL
instead. It'll be at least twice as fast.

>> you can usually get faster throughput
>> as non-postscript printers don't have the same overhead as
>> PostScript (i.e., "PostScript" itself takes up memory in
>> the printer).
>
> No, it doesn't. It's in ROM, and "consumes" zero memory.

The PS interpreter reserves a couple of meg of RAM. You can confirm this
by using the printer control panel to print a PCL status print, then a
PS status print.

Bob Larter

unread,
Nov 14, 2009, 2:24:55 PM11/14/09
to
Jeff Liebermann wrote:
> On Fri, 13 Nov 2009 16:53:39 -0800, "William Sommerwerck"
> <grizzle...@comcast.net> wrote:
>
>>> How much [RAM] memory does the 4M printer have?
>> I don't know (and don't care at the moment to print a test page). I assume
>> it's around 64MB.
>
> Standard RAM for the HP4m is 6 MBytes. I used one in the office for a
> few year. It's also slow (8 ppm). With only 6MB of RAM, I could
> barely print anything from my office Mac Cube. It would frequently
> spend 10-15 minutes uploading some gigantic file, and then just quit.
> Maximum RAM for the HP4m with the Postscribble (Level 2) SIMM
> installed is 26MBytes. If you have an HP4m+, it will take up to
> 50MBytes. If you have some Fast Page Mode SIMMs, they should work. I
> loaded mine with something less than 26MB (I forgot the exact amount)
> and still managed to over flow the buffer.

Yep. I have 24MB in my HP 4M+. I stole it from my equally ancient SGI Indy.

> Also, if you're using Windoze, go to the properties for the print
> driver and tell it how much RAM you have installed. The HP4m will not
> return config info to the driver. If you forget to do that, the
> Windoze driver will default to 2MB and your printing performance (and
> reliability) will suffer.

Good advice.

Bob Larter

unread,
Nov 14, 2009, 2:28:21 PM11/14/09
to
William Sommerwerck wrote:
>>> I don't know (and don't care at the moment to print a test page).
>>> I assume it's around 64MB.
>
>> Standard RAM for the HP4m is 6 MBytes. I used one in the office for a
>> few year. It's also slow (8 ppm). With only 6MB of RAM, I could
>> barely print anything from my office Mac Cube. It would frequently
>> spend 10-15 minutes uploading some gigantic file, and then just quit.
>> Maximum RAM for the HP4M with the Postscribble (Level 2) SIMM
>> installed is 26MBytes. If you have an HP4m+, it will take up to
>> 50MBytes. If you have some Fast Page Mode SIMMs, they should work.
>> I loaded mine with something less than 26MB (I forgot the exact amount)
>> and still managed to over flow the buffer.
>
>> Also, if you're using Windoze, go to the properties for the print
>> driver and tell it how much RAM you have installed. The HP4M will not
>> return config info to the driver. If you forget to do that, the
>> Windoze driver will default to 2MB and your printing performance
>> (and reliability) will suffer.
>
> Thanks for the suggestions. However, the driver has dialog boxes have no
> memory-size settings.

You mustn't be using the correct driver. Under PS options, you can tell
it how much RAM your printer has. My guess is that you have it
configured to use the PCL driver, rather than the PS driver.

> I went to a site that sould HP printer accessories, and the standard RAM
> size seems to be 16MB. What the default it, I don't know.

A lot smaller than that! Just use the printer front panel to print a
test page, & it'll tell you how much RAM is installed.

> I wouldn't mind having a faster printer, but the 4M is such a good product,
> that I have no intention of ever giving it up, until it can't be repaired or
> cartridges aren't available.

Me either. I love my 4M+.

Bob Larter

unread,
Nov 14, 2009, 2:32:07 PM11/14/09
to

Maybe so. 6MB is enough for the basics, but it'll drop your jobs if you
hit it with anything very complex. On the bright side, if you can find
compatible RAM for it (Kingston would be a good place to start), it'll
be cheap.

William Sommerwerck

unread,
Nov 14, 2009, 1:44:10 PM11/14/09
to
> You mustn't be using the correct driver. Under PS options, you can
> tell it how much RAM your printer has. My guess is that you have it
> configured to use the PCL driver, rather than the PS driver.

Not on mine. It specifically says "PS" in the dialog box. And PS options are
available.

I'm definitely not using the PCL driver. I can create a PRN file, and the
Acrobat Distiller will convert it to a PDF.

My "problem" with PCL is that it doesn't render the page the same as PS. The
printout does not exactly match what I see on the screen -- page breaks are
different, for example.

Before you say "Yes, but the driver affects the display" (which it does),
remember that the page layout itself -- in terms of margins, line spacing,
etc -- is independent of the driver. If I create a document in Ventura
Publisher, it should print out identically with any driver. It doesn't. I
stick with PostScript, because it's a widely used standard. I don't know any
photosetting machine that uses HP's PCL.


Michael A. Terrell

unread,
Nov 14, 2009, 2:57:38 PM11/14/09
to

Bob Larter wrote:
>
> William Sommerwerck wrote:
> >> The problems you pointed out are common with too little RAM.
> >> I have several older laser printers with 2 MB (or less) of RAM that
> >> are only good for text. Any graphics look like crap, because there
> >> isn't enough RAM to properly render the PostScript. One was an
> >> IBM 4019. I used it for a text only printer for over five years, till the
> >> fuser failed.
> >
> > But I've been using the printer ever since it was introduced without
> > problems. (I had the LJ II and LJ III prior to that.) And I've been printing
> > pages with complex graphics all that time, including my own documents, and
> > the manuals for the Olympus E-500 and Canon 5D2. The Canon 1V manual is the
> > first document that has ever caused this problem.
> >
> > I finally gave up and printed the Self Test page. Total RAM is 6144KB. The
> > PS Configuration page reports Global memory as 2308796 bytes and Local as
> > 1530752 bytes.
> >
> > Considering how cheap 16MB of RAM is ($8), perhaps I should add some.
>
> Maybe so. 6MB is enough for the basics, but it'll drop your jobs if you
> hit it with anything very complex. On the bright side, if you can find
> compatible RAM for it (Kingston would be a good place to start), it'll
> be cheap.


http://www.memoryx.net/laserjet.html

Jeff Liebermann

unread,
Nov 14, 2009, 5:08:46 PM11/14/09
to
On Sat, 14 Nov 2009 09:35:29 -0800, "William Sommerwerck"
<grizzle...@comcast.net> wrote:

>>> However, the driver has dialog boxes have no
>>> memory-size settings.
>
>> Trust me. It's there.
>> http://802.11junk.com/jeffl/crud/hp4ram.jpg
>
>Not under W2K.

I don't have a W2K machine handy but it's my understanding that the
W2K and XP printer delivers are the same. I just realized that the
above screen grab is from the HP LJ4, not the HP LJ4m. So, I loaded
the HP4m driver instead and got exactly the same thing. It's
identical to the HP4 except that it says HP LJ4m at the top of the
page, and oddly, the selection of RAM starts at 6MB but ends at 68MB.
I didn't think the HP LJ4M could handle that much.

Oh wait... I have an W2K Server available with remote access. Now, if
I can only remember the password.... Got it. Installing HP LJ4m.
Checking Settings.... Yep, exactly the same as XP. Please look again.

>I did. I reported it. It's a bit over 6MB.

That's the default. Find some FPM RAM and add it.

>Faster, no doubt. Better? No way.

The HP LJ4 series has a really good EX printing engine. However, I
consider the paper handling mechanism to be marginal.

>I recently had to print out a discount coupon with fine (decorative) print
>in the 2- or 3-point range. It was clean and perfectly legible. The newer
>printers have 1200dpi RET. Is that visibly better (except under a loupe)? I
>don't know. I doubt it.

Easy enough to test. Find a 1200 dpi printer and compare the output
in 300, 600, and 1200 dpi mode. For use, 1200 dpi is far better for
rendering pictures and photos. I would expect tiny print to also be
better, but I've never tried it.

Might as well see what my HP LJ2000dtn can do. Running a test page
under Open Office Writer 3.1 with lines starting at 10pt and working
my way down to 1pt. 2pt requires a magnifying glass to read, but is
perfectly clear. Same with everything larger. I pt comes out the
same size as 2pt suggesting that 2pt is the minimum font size. Also,
there are 3 levels of 1200 dpi resolution:
Prores 1200 at 141 lpi
Prores 1200 at 180 lpi
Fastres 1200
I can't see the difference between any of them using my test page.

Switching down to 600 dpi and running the same test page, it appears a
bit darker, but the 2pt readability is about the same. I have a
microscope in the office if you want to see the result blown up, but
with just a magnifying glass, I can't see much difference between 600
dpi and 1200 dpi. Oh well.

Incidentally, I've found the type and quality of the toner to have
huge effect on print quality.

>The paper wrinkling stopped after I bought the repair kit. (It had never
>been a problem.)

It's been a problem with every HP LJ4 I've ever played with. It
usually starts with occasional wrinkled pages, and turns into a paper
crumpler. New rear rollers solve the problem for the next 60K or more
pages.

>As for the rest... Show me a laser printer with better
>print quality, and I' might consider switching.

What's my commission for the sale?

>The 4- and 5-series printers
>are classic Canon products. If people weren't happy with the results, HP
>wouldn't have the demand needed to justify supplying cartridges.

True. They also tend to run forever. However, HP's business plan
seems to have forked. At the low end, they're selling printers that
will survive perhaps 5-10 cartridges and then just wear out. Like
most inkjets, they're junk on arrival and don't last. On the other
foot, HP's high end machines are make for production environments. My
only real complaint is that parts tend to be outrageously expensive.
Unfortunately, there's a large number of in between printers that
don't fit well in either category. The 4000 and later 4200/4300
series printers are mix of junk and quality. At least the prices are
stratified accordingly so one has a clue which class of printer is
appropriate.

>If I were going to buy a new printer, it would be something like this...
>http://www.shopping.hp.com/product/printer/LaserJet/1/storefronts/CE459A%2523ABA

$350 to $400. I was recommending a $120 (used) printer. I don't have
a problem with buying a better printer, but I assumed that you wanted
something cheap based on your attachment to the ancient HP LJ4m.

>How much would you care to bet that toner cartridges for the 4- and 5-
>series printers will still be available long after carts for the P2055dn is
>not longer available?

Agreed. There were a large number of printers based on the EX and EX+
engines, which justify the availability of toner carts. HP's toner
cart strategy seems to be to have a different cartridge for each
model, thus marginalizing the replacement toner market. Some printers
(i.e. 4200/4300) complain bitterly when a non-HP toner cartridge is
inserted, but will print anyway. Let's just say that HP (and others)
are not particularly friendly towards 3rd party vendors.

>I really don't need a new printer. Maybe... Maybe... when this toner cart is
>empty, I might think about a new model. But as long as the printer continues
>to work, why should I?

Speed, resolution, speed, reliability, speed, power consumption,
speed, paper handling, etc. Oh yeah, speed.

William Sommerwerck

unread,
Nov 14, 2009, 6:06:04 PM11/14/09
to
> http://www.memoryx.net/laserjet.html

I've bought from them before. They're cheap and good.


William Sommerwerck

unread,
Nov 14, 2009, 6:13:18 PM11/14/09
to
> Incidentally, I've found the type and quality of the toner to have
> huge effect on print quality.

No surprise. The HP cartridges cost "too much", but the refills aren't
particularly reliable.


>> The paper wrinkling stopped after I bought the repair kit.
>> (It had never been a problem.)

> It's been a problem with every HP LJ4 I've ever played with. It usually
> starts with occasional wrinkled pages, and turns into a paper crumpler.
> New rear rollers solve the problem for the next 60K or more> pages.

Ah, well... My printer has gone through less than 22,200 pages. And I've got
the spare rollers.


>> As for the rest... Show me a laser printer with better
>> print quality, and I' might consider switching.

> What's my commission for the sale?

A laurel, and hearty handshake.


>> If I were going to buy a new printer, it would be something like this...
>>
http://www.shopping.hp.com/product/printer/LaserJet/1/storefronts/CE459A%2523ABA


> $350 to $400. I was recommending a $120 (used) printer. I don't have
> a problem with buying a better printer, but I assumed that you wanted

> something cheap based on your attachment to the ancient HP LJ4M.

Yes, but $120 would buy me a new cartridge.


> Speed, resolution, speed, reliability, speed, power consumption,
> speed, paper handling, etc. Oh yeah, speed.

I don't use the printer heavily. So, as with the car ads, I'll imagine it
blowing nickels into my face...


Jeff Liebermann

unread,
Nov 14, 2009, 10:03:06 PM11/14/09
to
On Sat, 14 Nov 2009 15:13:18 -0800, "William Sommerwerck"
<grizzle...@comcast.net> wrote:

>> Incidentally, I've found the type and quality of the toner to have
>> huge effect on print quality.
>
>No surprise. The HP cartridges cost "too much", but the refills aren't
>particularly reliable.

True. I've had good luck on random cartridges from eBay. I
originally expected to find HP carts that had been refilled. Instead,
they're new plastic molded clones from China with some rather marginal
tolerance issues. I've had some that worked just fine, but had to
filed or tweaked slightly to fit. I can't see any difference in toner
other than the tendency for some vendors to overfill. The incentive
is that I can buy 3 or 4 clone carts for the price of one genuine HP
cartridge. The few that have had obvious problems were graciously
exchanged by the vendors, so I'm too worried about buying clone carts.

However (insert drum roll), I can't say the same with refill kits.
I've been refilling toner carts since about 1990, when it was
economically necessary. At one point, I had a 50lb drum of toner for
refills. At about $2 per cartridge (plus scrubber) it's tempting. I
don't do many monochrome refills because of the availability of clone
carts. However, color carts are still expensive, so bulk toner
refills are still a temptation. Results have been ummmm... marginal.
Sometimes it works just fine. Other times, not so fine. The usual
problem is when I don't replace the scrubber, and end up with vertical
streaking. Such defects are almost invisible with b&w text printing,
but look horrible on color photos.

>Ah, well... My printer has gone through less than 22,200 pages. And I've got
>the spare rollers.

Only 22K? That's a fairly new printer. At the rate you're using it,
I would expect it to last forever if you keep it clean.

>>> As for the rest... Show me a laser printer with better
>>> print quality, and I' might consider switching.
>
>> What's my commission for the sale?
>
>A laurel, and hearty handshake.

My usual sales method is to loan the customer a better, but used
printer. I make sure they only have enough toner for about a month of
printing. When they run out of toner, I usually get a phone call,
which invariably results in a sale of either a new equivalent, or the
used printer. I make more money on the used printer so it's no big
deal. I also get my empty cartridge back for "recycling" (which I
actually partly refill). They get to buy a new cartridge, which often
costs them more than the printer. Unless money is a major problem,
nobody ever wants to go back to the old laser printer.

Fly before you buy is an effective sales tool. You might want to
borrow a better printer and see what it does for you. I'm sure you'll
find something. In my case, it was not making any fan noises when in
standby, not sucking power when in standby, and very fast warmup. I
didn't realize how much time I spent waiting for the first page to
print. 300dpi would have been good enough for most of my applications
(invoicing, reports, Quickbooks, copies of web pages, knowledge base
instructions, manuals, etc.

>http://www.shopping.hp.com/product/printer/LaserJet/1/storefronts/CE459A%2523ABA
>> $350 to $400. I was recommending a $120 (used) printer. I don't have
>> a problem with buying a better printer, but I assumed that you wanted
>> something cheap based on your attachment to the ancient HP LJ4M.

>Yes, but $120 would buy me a new cartridge.

I think I paid about $30 for the 96A used by the HP2200dtn printer.
<http://cgi.ebay.com/ws/eBayISAPI.dll?ViewItem&item=260491255413>

>I don't use the printer heavily. So, as with the car ads, I'll imagine it
>blowing nickels into my face...

When I first saw that commercial, I figured their vehicle was burning
dollar bills for fuel. I rarely buy current technology for my own
use. Mostly, I get previous generation products. My customers get
the latest, while I often inherit older technology from the upgrade.
The cost savings of buying used is substantial, but one has to be
willing and able to fix and maintain things. While you're saving
nickels, I'm saving dollars.

isw

unread,
Nov 15, 2009, 12:23:49 AM11/15/09
to
In article <hdmse1$acd$1...@news.eternal-september.org>,
"William Sommerwerck" <grizzle...@comcast.net> wrote:

> > GhostScript is your friend.
>
> Why? I have a "real" PostScript printer, and the driver outputs a "real"
> PostScript file.

I'd be interested to know why GhostScript's output isn't "real".

Isaac

William Sommerwerck

unread,
Nov 15, 2009, 7:27:12 AM11/15/09
to
>> Ah, well... My printer has gone through less than 22,200 pages.
>> And I've got the spare rollers.

> Only 22K? That's a fairly new printer. At the rate you're using it,
> I would expect it to last forever if you keep it clean.

That's my expectation.


>>> As for the rest... Show me a laser printer with better
>>> print quality, and I' might consider switching.

>> What's my commission for the sale?

> A laurel, and hearty handshake.

What's the point in making jokes if no one gets them?


> My usual sales method is to loan the customer a better,
> but used printer. I make sure they only have enough toner
> for about a month of printing. When they run out of toner,
> I usually get a phone call, which invariably results in a sale
> of either a new equivalent, or the used printer.

Heh, heh, heh. <rubbing his hands with Glee, a Scottish dishwashing liquid>


> When I first saw that commercial, I figured their vehicle was burning
> dollar bills for fuel. I rarely buy current technology for my own use.

> Mostly, I get previous-generation products. My customers get the


> latest, while I often inherit older technology from the upgrade. The
> cost savings of buying used is substantial, but one has to be willing
> and able to fix and maintain things. While you're saving nickels, I'm
> saving dollars.

But I've owned the printer for nigh-on to 17 years, young'un.

At the rate I'm currently printing, my toner cartridge (purchased in early
2008) will probably last another couple of years (assuming the toner doesn't
start deteriorating). At that point I can think about a new printer. "Well
done, thou good and faithful servant."


William Sommerwerck

unread,
Nov 15, 2009, 7:28:04 AM11/15/09
to
>>> GhostScript is your friend.

>> Why? I have a "real" PostScript printer, and the driver outputs
>> a "real" PostScript file.

> I'd be interested to know why GhostScript's output isn't "real".

I'd be interested to know why I'm supposed to switch to GhostScript.


Jeff Liebermann

unread,
Nov 15, 2009, 12:16:33 PM11/15/09
to
On Sun, 15 Nov 2009 04:27:12 -0800, "William Sommerwerck"
<grizzle...@comcast.net> wrote:

>What's the point in making jokes if no one gets them?

Sorry. I got the joke, but lurched onward to expound on my sales
technique. If you read my various rants (in various newsgroups) I
avoid offering specific product recommendations. It's like asking a
lawyer or doctor for advice. You'll never get a single specific
recommendation. Instead, you'll receive an assortment of options, and
you get to decide which is best. If the advice fails, it's your
fault, not the fault of the doctor or lawyer. Were they to offer a
single recommendation, it would obviously be their fault. Think of it
as defensive advice.

>Heh, heh, heh. <rubbing his hands with Glee, a Scottish dishwashing liquid>

Not available in the colonies. We use paper plates and plastic
utensils. Dishes and dish washing are so old world.

>> While you're saving nickels, I'm
>> saving dollars.
>
>But I've owned the printer for nigh-on to 17 years, young'un.

I've had similar love affairs with old HP calculators, various lady
friends, several businesses, and a 1983 Dodge D50 diesel pickup truck.
All of them lasted about 25 years which seems to be some kind of time
limit for me. Perhaps your relationship with your laser printer will
survive somewhat longer, but I predict you will eventually demand a
divorce. I note that you've already selected a suitable replacement,
which is the first step.

>At the rate I'm currently printing, my toner cartridge (purchased in early
>2008) will probably last another couple of years (assuming the toner doesn't
>start deteriorating). At that point I can think about a new printer. "Well
>done, thou good and faithful servant."

Ok, let's do the math. It took you 17 years to print 22,000 pages,
your consumption is approximately 1,300 pages per year. The HP LJ4m
98A carts are good for about 8000 pages (at 5% coverage). At your
present rate of toner consumption, I get a predicted life of about 6
years, of which you've already consumed 2 years. I would expect you
to be shopping for a new printer in late 2013. Please mark your
calendar. I'll remind you as I'm still expecting a commission on the
sale.

Jeff Liebermann

unread,
Nov 15, 2009, 12:26:36 PM11/15/09
to
On Sat, 14 Nov 2009 09:32:41 -0500, "Michael A. Terrell"
<mike.t...@earthlink.net> wrote:

>William, printers don't use standard RAM. It has to match the
>printer.

That's true of later printers. Printer RAM tends to be weird.

However, the HP LJ4 series uses common Fast Page Mode SIMM memory,
that was common on 386, 486, and early Pentium motherboards. EDO
won't work. The maximum for the HP LJ4m is adding three 8MByte SIMM's
as the Postcript module occupies the first slot. The 4M+ will take
16MB SIMM's.

If you have some old RAM floating around, just try it. If you get an
error message, or it doesn't display the correct amount of RAM, try a
different SIMM.

William Sommerwerck

unread,
Nov 15, 2009, 12:26:47 PM11/15/09
to
> Ok, let's do the math. It took you 17 years to print 22,000 pages,
> your consumption is approximately 1,300 pages per year. The HP LJ4M

> 98A carts are good for about 8000 pages (at 5% coverage). At your
> present rate of toner consumption, I get a predicted life of about 6
> years, of which you've already consumed 2 years. I would expect
> you to be shopping for a new printer in late 2013. Please mark your
> calendar. I'll remind you as I'm still expecting a commission on the
> sale.

I tend to greater than 5% coverage, so it'll likely be sooner. All I know is
that I'll be in the market for a new toner cartridge.


Jeff Liebermann

unread,
Nov 15, 2009, 12:29:00 PM11/15/09
to
On Sat, 14 Nov 2009 04:32:56 -0800, "William Sommerwerck"
<grizzle...@comcast.net> wrote:

>I finally gave up and printed the Self Test page. Total RAM is 6144KB. The
>PS Configuration page reports Global memory as 2308796 bytes and Local as
>1530752 bytes.
>
>Considering how cheap 16MB of RAM is ($8), perhaps I should add some.

The 16M SIMM will *NOT* work in the HP LJ4, but will work in the HP
LJ4m+. The best you can do are three 8MB SIMM's.

Michael A. Terrell

unread,
Nov 15, 2009, 2:02:45 PM11/15/09
to


I figured that, but there are lurkers, and people may find the tread
in the future. :)

bz

unread,
Nov 18, 2009, 9:00:30 AM11/18/09
to
"William Sommerwerck" <grizzle...@comcast.net> wrote in
news:hdm841$bg6$1...@news.eternal-september.org:

>> The problems you pointed out are common with too little RAM.
>> I have several older laser printers with 2 MB (or less) of RAM that
>> are only good for text. Any graphics look like crap, because there
>> isn't enough RAM to properly render the PostScript. One was an
>> IBM 4019. I used it for a text only printer for over five years, till
>> the fuser failed.
>
> But I've been using the printer ever since it was introduced without
> problems.

...


> The
> Canon 1V manual is the first document that has ever caused this probl

....

SUGGESTION:
download a program like cutePDF (a free program that acts like a printer
and creates a pdf file instead of actually printing it).

THEN print the PDF.

This gets you away from the postscript expansion problem that is choking
your printer.


--
bz 73 de N5BZ k

please pardon my infinite ignorance, the set-of-things-I-do-not-know is an
infinite set.

Bob Larter

unread,
Nov 23, 2009, 3:40:49 AM11/23/09
to
William Sommerwerck wrote:
>>>> But you are still printing to a PostScript printer *encapsulating*
>>>> the bitmap as a PostScript file. So, the printer has to treat
>>>> it as such.
>
>>> But it doesn't have to /render/ anything -- just dump the bits to the
> drum.
>
>> PostScript is a *programming language*.
>
> No, it's not.

Yes it is: <http://en.wikipedia.org/wiki/PostScript>

> It's a way of describing what will be printed. This requires
> interpretation -- which is not the same as running a program.

When you send a print job to a PostScript printer, you're downloading a
PostScript program which is interpreted, & as a side effect generates a
bitmap which is dumped to the engine.

>> No, the *interpreter* is in ROM. But the interpreter needs
>> RAM to remember what it is doing!
>
> Read what you wrote: "PostScript" itself takes up memory in the printer." It
> takes up no memory.

Yes, it does take up memory. This can be easily shown by running a PS
test print on your PS printer. It will usually list how it's allocated
the RAM.

Bob Larter

unread,
Nov 23, 2009, 3:47:46 AM11/23/09
to
William Sommerwerck wrote:
>> How much [RAM] memory does the 4M printer have?
>
> I don't know (and don't care at the moment to print a test page). I assume
> it's around 64MB.

IIRC, a 4M with PostScript maxes out at about 24MB of RAM. The printer
has 4 SIMM slots, one of which is taken up with the PostScript ROM. I
don't recall the default config for those printers, but I'd guess at
6-8MB. BTW, the symptom you get when you don't have enough memory is
that when you send the file, the busy light/LCD will flash as though
it's processing, then it'll go back online without actually printing
anything.

Bob Larter

unread,
Nov 23, 2009, 3:55:21 AM11/23/09
to
William Sommerwerck wrote:
> At the rate I'm currently printing, my toner cartridge (purchased in early
> 2008) will probably last another couple of years (assuming the toner doesn't
> start deteriorating).

What tends to happen to toner carts that're rarely used is that the
toner 'cakes up'. The symptom is that the prints look weak & streaky,
not unlike a nearly empty cart. You can usually fix it by taking out the
cart & giving it a thorough shake to loosen up the toner.

William Sommerwerck

unread,
Nov 23, 2009, 7:34:27 AM11/23/09
to
>> Read what you wrote: "PostScript" itself takes up memory
>> in the printer." It takes up no memory.

I never wrote that! It consumes some of the address, but that's not the same
thing as consuming RAM.

PostScript is a "programming language" only in the sense that it describes
how to do something (ie, print a page). Try using it to write a compiler or
an embedded application.


D Yuniskis

unread,
Nov 23, 2009, 1:08:08 PM11/23/09
to
William Sommerwerck wrote:
>>> Read what you wrote: "PostScript" itself takes up memory
>>> in the printer." It takes up no memory.
>
> I never wrote that! It consumes some of the address, but that's not the same
> thing as consuming RAM.

The PostScript SIMM takes up address space. But, PostScript
*itself* uses RAM to keep track of what it is doing. Just
like a BASIC interpreter can reside in ROM (on the early
IBM XT, for example) yet still require RAM to run the programs
it is fed.

> PostScript is a "programming language" only in the sense that it describes
> how to do something (ie, print a page). Try using it to write a compiler or
> an embedded application.

I posted a PostScript PROGRAM that computes pi. To thousands of
decimal places. You *could* write a compiler in PostScript.

From wikipedia (*first* sentence of each topic):

POSTSCRIPT:
"PostScript (PS) is a dynamically typed concatenative programming
language created by John Warnock and Charles Geschke in 1982."

BASIC:
"In computer programming, BASIC (an acronym for Beginner's All-purpose
Symbolic Instruction Code[1]) is a family of high-level programming
languages."

COBOL:
"COBOL (pronounced /ˈkoʊbɒl/) is one of the oldest programming
languages."

PL/1:
"PL/I is an imperative computer programming language designed for
scientific, engineering, and business applications."

FORTRAN:
"Fortran (previously FORTRAN) is a general-purpose, procedural,
imperative programming language that is especially suited to numeric
computation and scientific computing."

ALGOL:
"ALGOL (short for ALGOrithmic Language) is a family of imperative
computer programming languages originally developed in the mid 1950s
which greatly influenced many other languages and became the de facto
way algorithms were described in textbooks and academic works for
almost the next 30 years."

C:
"C is a general-purpose computer programming language developed in
1972 by Dennis Ritchie at the Bell Telephone Laboratories for use
with the Unix operating system."

C++:
"C++ (pronounced "See plus plus") is a statically typed, free-form,
multi-paradigm, compiled, general-purpose programming language."

ML:
"ML is a general-purpose functional programming language developed
by Robin Milner and others in the late 1970s at the University of
Edinburgh, whose syntax is inspired by ISWIM."

Python:
"Python is a general-purpose high-level programming language."

Perl:
"Perl is a high-level, general-purpose, interpreted, dynamic
programming language."

SNOBOL:
"SNOBOL (String Oriented Symbolic Language) is a computer programming
language developed between 1962 and 1967 at AT&T Bell Laboratories by
David J. Farber, Ralph E. Griswold and Ivan P. Polonsky."

Lua:
"In computing, Lua is a lightweight, reflective, imperative and
functional programming language, designed as a scripting language
with extensible semantics as a primary goal."

(ad nauseum)

Do you claim that none of these other PROGRAMMING LANGUAGES are
*not* programming languages? Then why do you claim PostScript
isn't?

Spend some time *reading* a PostScript *program* and you will
see that it's much different than PCL5 output. It actually
*computes*. Download a copy of GhostScript and "talk to it".
Once you have tried this, it should be fairly obvious that
you could write a PostScript program and *interact* with it
under GhostScript.

Here's more examples (clip and send to your PS printer).
I previously posted a program to *compute* pi.
The first *computes* the date on which Easter Sunday will fall.
The second generates the verses to "99 bottles of beer on the wall".
The third one is a WEB SERVER written in PostScript!
[Credits to each of their individual authors]

Gee, they *claim* its a programming language and it sure
*behaves* like one! :>
----------8<----------------8<----------------8<-----------
%!
%%Creator: (c)2003 Oskar Schirmer, schi...@scara.com
%%Pages: 1

-70 100 translate -14 rotate
/Helvetica findfont 42 scalefont setfont
0 680 moveto (Easter day) show
/Helvetica findfont 7 scalefont setfont
/ZS 4 string def

-2 1 9 { dup dup 0 lt exch 2 gt or {-50} {0} ifelse
1 119 { 1 index 70 mul 660 2 index 6.6 mul sub moveto
1600 add 1 index 100 mul add /Year exch def
Year ZS cvs show (: ) show
/Easter % n-th march is easter sunday (algorithm by knuth)
/Eag Year 19 mod 1 add def
/Eac Year 100 idiv 1 add def
/Eax 3 Eac mul 4 idiv 12 sub def
/Eaz 8 Eac mul 5 add 25 idiv 5 sub def
/Ead 5 Year mul 4 idiv Eax sub 10 sub def
/Eae 11 Eag mul 20 add Eaz add Eax sub 480 add 30 mod def
Eae 25 eq Eag 11 gt and Eae 24 eq or {/Eae Eae 1 add def} if
/Ean 44 Eae sub def
Ean 21 lt {/Ean Ean 30 add def} if
Ean 7 add Ead Ean add 7 mod sub
def
Easter dup 31 le {(march )} {31 sub (april )}
ifelse show dup ZS cvs show
dup dup 1 eq exch dup 21 eq exch 31 eq or or {pop (st)} {
dup dup 2 eq exch 22 eq or {pop (nd)} {
dup 3 eq exch 23 eq or {(rd)} {(th)} ifelse
} ifelse} ifelse show
} for pop
} for

showpage
----------8<----------------8<----------------8<-----------
%!PS-Adobe-0.0
%
% ``99 Bottles of Beer'' in PostScript. Demonstrates use of procedures,
% arrays, and stack manipulation. Multi-page printout (A4 and letter).
% Tadziu Hoffmann (hoffmann\100usm\56lmu\56de)

/Helvetica findfont 15 scalefont setfont
/lineskip -18 def /leftmargin 70 def /pagetop 720 def /pagebottom 50 def
/newline
{ lineskip mul currentpoint exch pop add dup pagebottom lt
{ pop showpage leftmargin pagetop moveto }
{ leftmargin exch moveto }
ifelse }
def
/min { 2 copy gt { exch } if pop } def
/buffer 8 string def
/bottles { dup 2 min vocabulary exch get exec } def
/vocabulary
[ { pop (Hello world!) ( bottles) (no more) (No more) }
{ pop (it) ( bottle) (one) (One) }
{ (one) ( bottles) 3 2 roll buffer cvs dup } ]
def
/stanza
{ dup bottles show 1 index show ( of beer on the wall, ) show
show show ( of beer.) show 1 newline
( Take ) show show ( down and pass it around, ) show
1 sub bottles pop show show pop ( of beer on the wall.) show 1.2
newline }
def
/buymore
{ (No more bottles of beer on the wall, ) show
(no more bottles of beer.) show 1 newline
( Go to the store and buy some more, ) show
bottles pop show show pop ( of beer on the wall.) show 1.2 newline }
def
/beersong { dup -1 1 { stanza } for buymore showpage } def
leftmargin pagetop moveto 99 beersong
----------8<----------------8<----------------8<-----------
%!

%===================================================
% PS-HTTPD V1.4
% Copyright 2000-2003 Anders Karlsson, pu...@pugo.org
% License: GNU General Public License
%===================================================

% This dictionary maps between extensions and mime-types
% Observe that "html" isn't part of this dict, that's because
% it's default in print_header.

/extensiondict 29 dict def
extensiondict begin
/jpg (Content-type: image/jpeg\n) def
/jpeg (Content-type: image/jpeg\n) def
/gif (Content-type: image/gif\n) def
/png (Content-type: image/png\n) def
/tif (Content-type: image/tiff\n) def
/tiff (Content-type: image/tiff\n) def
/txt (Content-type: text/plain\n) def
/css (Content-type: text/css\n) def
/ps (Content-type: application/postscript\n) def
/pdf (Content-type: application/pdf\n) def
/eps (Content-type: application/postscript\n) def
/tar (Content-type: application/x-tar\n) def
/gz (Content-type: application/x-tar\n) def
/tgz (Content-type: application/x-tar\n) def
/rpm (Content-type: application/x-rpm\n) def
/zip (Content-type: application/zip\n) def
/mp3 (Content-type: audio/mpeg\n) def
/mp2 (Content-type: audio/mpeg\n) def
/mid (Content-type: audio/midi\n) def
/midi (Content-type: audio/midi\n) def
/wav (Content-type: audio/x-wav\n) def
/au (Content-type: audio/basic\n) def
/ram (Content-type: audio/x-pn-realaudio\n) def
/ra (Content-type: audio/x-realaudio\n) def
/mpg (Content-type: video/mpeg\n) def
/mpeg (Content-type: video/mpeg\n) def
/qt (Content-type: video/quicktime\n) def
/mov (Content-type: video/quicktime\n) def
/avi (Content-type: video/x-msvideo\n) def
end


/get_file % read file /infile and send it to %stdout
{
{ % loop
infile inbuff readstring
{ stdout exch writestring }
{ stdout exch writestring infile closefile exit } ifelse
} bind loop
flush
} bind def


/concatstr % A better string-concat
{
exch dup length 2 index length add string
dup dup 4 2 roll copy length 4 -1 roll putinterval
} bind def

/hitcount % Add 1 to the hitcount-file
{
(/home/pugo/psweb/hits) (r+) file
dup dup
dup 16 string readline pop
1 index 0 setfileposition
cvi 1 add 16 string cvs
writestring (\n) writestring
closefile
} bind def


% Return extension of file on stack
/get_extension % (filepath.ext) -- (bool) (ext)
{
dup
{ % loop
(.) search
{ pop pop }
{ exit } ifelse
} loop
exch 1 index ne
} bind def


% Print a HTTP-header
/print_header % (filename) (size) --
{
stdout persistent {(HTTP/1.1 200 OK\n)} {(HTTP/1.0 200 OK\n)} ifelse
writestring
stdout (MIME-Version: 1.0\n) writestring
stdout (Server: PS-HTTPD/1.4\n) writestring
stdout (Content-Length: ) writestring
stdout exch 16 string cvs writestring
stdout (\n) writestring

get_extension
{
% If the extension exists in dictionary, then use it,
% otherwise hope that text/html is good enough.
dup extensiondict exch known
{ extensiondict exch get stdout exch writestring }
{ pop stdout (Content-type: text/html\n) writestring } ifelse
}
{ % Couldn't get extension, guess it's text/html
pop stdout (Content-type: text/plain\n) writestring
} ifelse

stdout (\n) writestring flush
} bind def


/read_command % read command from stdin and define it to /command
{
/stdin (%stdin) (r) file def
1024 string
{
% read lines until empty line
stdin 256 string readline pop
dup () eq { pop exit } { concatstr } ifelse
} loop

/command exch def
} bind def


% Parse the HTTP-command read from user
/parse_result
{
% Check if we should do HTTP 1.1 persistent connections
command (HTTP/1.1) search
{
pop pop pop
command (Connection: close) search % Check for Connection: close
{ pop pop pop /persistent false def }
{ pop /persistent true def } ifelse
}
{ pop /persistent false def } ifelse


command token
{
(GET) eq
{
( ) search
{
root exch concatstr % build path
/filename exch def pop pop % define filename and clean stack
filename filename length 1 sub 1 getinterval (/) eq
{ filename (index.html) concatstr
/filename exch def } if % add index.html

filename (..) search % Check if user tries to use ".."
{ stdout (4711 Stupid user error!\n\n) writestring quit } if pop

/infile filename (r) file def % open file

filename infile bytesavailable print_header
get_file
} if
} if
} if
} bind def


% Redefine handleerror in errordict to quit on all errors.
% Otherwise it will be possible to telnet and get a postscript-prompt
errordict begin
/handleerror { stdout (\n\nPS-HTTPD ERROR: Probably wrong URL\n\n)
writestring quit } def
end

% Buffer used to read data from file. Around 2048 bytes should be good.
/inbuff 2048 string def

% Init environment
/stdout (%stdout) (w) file def
/command () def

% Root-path (root of WWW-pages)
/root (/home/pugo/psweb/www) def


%hitcount % add one to the hitcount

% Read a command from the server and parse result
{
read_command
parse_result
persistent not { exit } if % exit if not persistent, otherwise loop
again
} loop % Loop until persistent close

quit

0 new messages