Thinnest line on a laser printer

  • Thread starter Thread starter Carlos Montero Orille
  • Start date Start date
C

Carlos Montero Orille

Hi,

I need to print a very thin line on a HP Laserjet 2100TN printer
(1200 dpi). For that I make use of the following simple postscript code:

%!
0 setlinewidth
newpath
100 20 moveto
0 720 rlineto stroke
showpage

Sending this code (through linux LPRng) to the printer a vertical line is
plotted on the paper as was expected. However line width (checked by a
microscope) is never 1/1200'' (the dot size of this printer) but about
3/1200'' or 4/1200''. I have also tried the same on other substrates like
heavier paper or acetate slides, but nothing changed.

What should I do? Call HP? Looking for a substrate with smaller fibers
that provides better resolution? Which?

Thank you for your help,

Carlos Montero Orille

----------------------------------------
Carlos Montero Orille
Escola de Optica e Optometria
Univ. Santiago de compostela
E-15782, SPAIN
Phone: +34981563100 Ext. 13506
Fax: +34981590485
E_mail: (e-mail address removed)
----------------------------------------
 
=>Sending this code (through linux LPRng) to the printer a vertical line is
=>plotted on the paper as was expected. However line width (checked by a
=>microscope) is never 1/1200'' (the dot size of this printer) but about
=>3/1200'' or 4/1200''. I have also tried the same on other substrates like
=>heavier paper or acetate slides, but nothing changed.

Ah, you are suffering from the belief that Dots Per Inch is
an Objective Measurement. As you have discovered, it ain't
necessarily so. (Hey, that line would make a good song!
:-))

Dots Per Inch is a very misleading number. Printer mfrs
tell you a printer prints 1200 dpi, when in fact they print
(as you have found out) 300dpi. But you see, three colour
cartridges plus black --> four times 300 --> 1200 dpi..

Or, as you have found out, they tell you the nominal dot
size of the charged area on the drum to which the toner
adheres, but don't tell you that these dots are arranged to
produce "half tone" imagery, which means that several of
them (3 or 4 usually) are arranged to overlap and produced
lighter or darker _pixels_. (Zero dots per pixel is white;
one dot per pixel --> pale grey; all dots per pixel -->
black. These four or five grey levels mixed with each other
produce the eight or so grey levels that a halftone image
needs to look OK; and the human visual system does the
rest.)

It's magic! :-)

The thinnest line a printer can lay down is one _pixel_
wide. That's not the same thing as dpi at all, especially
with colour printers. IMO, printer resolution should be
given in pixels per inch (ppi), not dots per inch. Most
printers use several dots to create one pixel. (AFAIK, the
only printers that ever had 1 dot = 1 pixel were the old 8
pin dot-matrix printers.)

BTW, at 300ppi and normal viewing distances of about 30cm
from the page, very, very few people can tell the
difference between a photograph and a printed image. DPI
and PPI don't actually tell you much about how an image
looks to the human eye, which makes up for a lot of
deficiencies in the image. For example, your monitor has a
"dot pitch" of about 1/4mm (which would be 100dpi in
printer speak), and a "pixel pitch" of about 1/2mm (the
dots are arranged in a triangle), which works out to about
50 ppi. Looks pretty good, though, eh?

OTOH, if there is some technical (rather than aesthetic)
reason for printing a 1/1200" line, I think you will have
to invest in something other than run of the mill printers.

HTH
 
Carlos said:
I need to print a very thin line on a HP Laserjet 2100TN printer
(1200 dpi). For that I make use of the following simple postscript code:

%!
0 setlinewidth
newpath
100 20 moveto
0 720 rlineto stroke
showpage

Sending this code (through linux LPRng) to the printer a vertical line is
plotted on the paper as was expected. However line width (checked by a
microscope) is never 1/1200'' (the dot size of this printer) but about
3/1200'' or 4/1200''. I have also tried the same on other substrates like
heavier paper or acetate slides, but nothing changed.
I think you're confusing "addressibility" with true "resolution". The
latter term is often used of a printer, e.g. "1200 dpi resolution"
while the former term would be more accurate. A 1200-dpi printer can
'target' a speck of toner at 1200 different points in a one-inch
line, but the mark that's actually made is much larger -- as you have
discovered. The same is true of most imagesetters: for example I
believe our ECRM Stingray has a "spot size" (the diameter of the area
exposed by the laser when marking a single pixel) of 15 microns, but
its addressibility (again, usually called "resolution") goes up to
140 pixels per millimetre (3556 dpi); thus two adjacent pixels are
only about 7 microns apart, making the laser spots overlap to a
considerable extent.

At any rate I don't think you'll find any xerographic laser printer
that can make a line thinner than about .003", regardless of its
nominal "resolution" or addressibility. This is because there is a
physical lower limit to the size of a charged region on the drum
and/or the size of the toner particles themselves. By specifying a
zero linewidth in your PS code you should be already be getting the
thinnest possible line.

--Odysseus
 
Carlos Montero Orille said:
Hi,
I need to print a very thin line on a HP Laserjet 2100TN printer
(1200 dpi). For that I make use of the following simple postscript code:

%!
0 setlinewidth
newpath
100 20 moveto
0 720 rlineto stroke
showpage
...
Thank you for your help,
Carlos Montero Orille
...

Carlos,

the actual resolution can be tested by printing
this doc (scale factor 1 of course):
http://www.fho-emden.de/~hoffmann/raster16052003.pdf

Best regards --Gernot Hoffmann
 
On Sat, 08 Nov 2003 03:38:29 GMT, Odysseus wrote:

=>I think you're confusing "addressability" with true "resolution". The
=>latter term is often used of a printer, e.g. "1200 dpi resolution"
=>while the former term would be more accurate. A 1200-dpi printer can
=>'target' a speck of toner at 1200 different points in a one-inch
=>line, but the mark that's actually made is much larger -- as you have
=>discovered. The same is true of most imagesetters: for example I
=>believe our ECRM Stingray has a "spot size" (the diameter of the area
=>exposed by the laser when marking a single pixel) of 15 microns, but
=>its addressability (again, usually called "resolution") goes up to
=>140 pixels per millimetre (3556 dpi); thus two adjacent pixels are
=>only about 7 microns apart, making the laser spots overlap to a
=>considerable extent.

Thanks, Odysseus, clears up a confusion I suffered from
(see my post -- on 2nd thought, don't, unless you need a
laugh.)
 
Perhaps putting the printer into draft/ink saving mode would get you
closer to what you need.
 
This is a bit off the subject, but I have a resolution chart
drawn in Autocad that I would like to print on reflective
media.

It would need at least 4000 dpi to be effective. Anyone advise
what type of printer, imagesetter etc., would be best and
perhaps a service bureau with such equiment.

(Black and White only, no color)

Thanks
AL
 
This is a bit off the subject, but I have a resolution chart
drawn in Autocad that I would like to print on reflective
media.
It would need at least 4000 dpi to be effective. Anyone advise
what type of printer, imagesetter etc., would be best and
perhaps a service bureau with such equiment.
(Black and White only, no color)
Thanks
AL

Alfred,

export AutoCad as PDF and talk to a Service Provider.
I can get my docs printed on film by 2800 dpi, but you
will hardly find anybody who prints on paper-like media
with 4000 dpi.

Best regards --Gernot Hoffmann
 
I need to print a very thin line on a HP Laserjet 2100TN printer
(1200 dpi). For that I make use of the following simple postscript code:

%!
0 setlinewidth
newpath
100 20 moveto
0 720 rlineto stroke
showpage

Sending this code (through linux LPRng) to the printer a vertical line is
plotted on the paper as was expected. However line width (checked by a
microscope) is never 1/1200'' (the dot size of this printer) but about
3/1200'' or 4/1200''. I have also tried the same on other substrates like
heavier paper or acetate slides, but nothing changed.

If I recall correctly, when you send a print job from a layout or
drawing application, if you specify the width of the line as
"hairline" it will print the thinnest line the output device is
capable of. This has trapped many a designer over the years. The
designer specifies "hairline" and makes a proof on his laser printer.
Then he sends to file to an imagesetter at 2540 dpi, and the lines
come out so thin they are barely visible. The designer should have
specified a specific thickness, e.g., 1/4 point, or something.

You might see if you can modify your code to send "hairline" as the
width and see what happens. However, I suspect it won't be any
thinner. Output devices take several dots to print even the thinnest
line they are capable of. I'm not sure exactly why, but I don't think
you'll ever get a line exactly one dot wide.
 
Yes, a line with width 0 would hardly deliver reliable results on
different devices. "Thinnest line" is just a default, in order to
avoid vanishing.

IMO, vector graphics are not drawn as vectors - they are rastered.
This is immediately understandable for gray lines (or gray charac-
ters).
Therefore, the effective line width is much more defined by the Lpi
setting than the dpi value.

My tests for a 1200dpi/106Lpi laser printer have shown that resolu-
tion is limited to about 180 Lpi (distinguishable lines per inch).
Here we have already gray gaps instead of white gaps.

Best regards --Gernot Hoffmann
 
Marek said:
If I recall correctly, when you send a print job from a layout or
drawing application, if you specify the width of the line as
"hairline" it will print the thinnest line the output device is
capable of. This has trapped many a designer over the years. The
designer specifies "hairline" and makes a proof on his laser printer.
Then he sends to file to an imagesetter at 2540 dpi, and the lines
come out so thin they are barely visible. The designer should have
specified a specific thickness, e.g., 1/4 point, or something.

You might see if you can modify your code to send "hairline" as the
width and see what happens. However, I suspect it won't be any
thinner. Output devices take several dots to print even the thinnest
line they are capable of. I'm not sure exactly why, but I don't think
you'll ever get a line exactly one dot wide.

A 0 setlinewidth will normally automatically print the finest line
available.


--
Many thanks,

Don Lancaster
Synergetics 3860 West First Street Box 809 Thatcher, AZ 85552
voice: (928)428-4073 email: (e-mail address removed) fax 847-574-1462

Please visit my GURU's LAIR web site at http://www.tinaja.com
 
Marek said:
You might see if you can modify your code to send "hairline" as the
width and see what happens. However, I suspect it won't be any
thinner. Output devices take several dots to print even the thinnest
line they are capable of. I'm not sure exactly why, but I don't think
you'll ever get a line exactly one dot wide.
PostScript itself doesn't use the term "hairline"; the equivalent is
the zero linewidth that the OP has already specified in his code. In
a drawing or layout application "hairline" has a specific meaning
depending on that particular program. Some may specify a zero
linewidth in their PS output, while others will use a value of the
programmers' choice. For example, CorelDraw's hairlines are 0.216 pt
(.003") thick. Most PS devices will render a "0 setlinewidth" stroke
as one device-pixel thick -- at least where it runs dead horizontally
or vertically -- but (as I mentioned upthread) the actual appearance
of that line will depend on the nature of the hardware in the imaging
device as well as its addressability.
 
Marek Williams said:
You might see if you can modify your code to send "hairline" as the
width and see what happens. However, I suspect it won't be any
thinner. Output devices take several dots to print even the thinnest
line they are capable of. I'm not sure exactly why, but I don't think
you'll ever get a line exactly one dot wide.

An interpreter has strict rules about how to paint strokes of a
specific width. An imaginary line is made along the exact path,
overlaying the pixel grid but with much more precision (imagine really
big pixels and a line drawn over them).

Then, the line width must be added - half on each side.
Then, any pixel enclosed in the line shape must be painted.
This means that even the smallest line width might happen to extend
over more than one pixel, painting alternately 1-2 pixels.

There are tricks for stroke adjustment to reduce this effect, but on
diagonals it will still happen.

On the other hand, a stroke width of zero does not mandate a specific
pattern of filling pixels - only that the device make the narrowest
line it is capable of. This may mean that zero and very small widths
produce noticeably different results, especially on diagonals.
 
An interpreter has strict rules about how to paint strokes of a
specific width. An imaginary line is made along the exact path,
overlaying the pixel grid but with much more precision (imagine really
big pixels and a line drawn over them).

Then, the line width must be added - half on each side.
Then, any pixel enclosed in the line shape must be painted.
This means that even the smallest line width might happen to extend
over more than one pixel, painting alternately 1-2 pixels.

There are tricks for stroke adjustment to reduce this effect, but on
diagonals it will still happen.

On the other hand, a stroke width of zero does not mandate a specific
pattern of filling pixels - only that the device make the narrowest
line it is capable of. This may mean that zero and very small widths
produce noticeably different results, especially on diagonals.

That´s theory. My QMS 6100 1200dpi/106Lpi laser printer doesn´t
draw lines with dpi resolution. The resolution for distinguishable
lines is in the region of the 100..180 lines per inch.

According to the OP´s question "what is printed by zero line width"
I have added a test pattern with zero settings on p.5:
http://www.fho-emden.de/~hoffmann/raster16052003.pdf

My interpretation may be valid only for the specific printer, but I´m
sure that other laser printers are similar. Should be tested.

The really important result is this: finite line widths for about 100
to 180 lines per inch can be reproduced more or less reliably.
That´s far from the dpi resolution.

Best regards --Gernot Hoffmann
 
Back
Top