> >I'm using hpnpf to print to a TCP/IP printer. I get the CR/LF just > >fine using the -N option, but only if there's a CR/LF in the file being > >printed. I have lines that span past 80 columns, and they just print > >off the page. How do I get hpnpf to wrap lines greater than 80 columns?
Enable the "end-of-line wrap" feature on your unspecified tcp/ip printer.
Assuming said printer is made by HP, and supports PCL3 or higher, and
assuming that you're using the SCO HPNP print spooler scripts, you should be
able to just add the necessary commands to initialization string.
EOL Wrap Hex
Enabled
I don't think you'll be happy with the results since HP counts lines per
page based upon input (sent to printer) lines, not output (printed). This
will cause you page count to go insane. I have this problem when printing
program listings that run off the page. If it's one continuous program, the
wrap is not much of a problem. However, if my wiz bang integrated
environment insists of pre-formatting and paginating the listing, it looks
awful.
Well, sometimes the OS can do a better job of it- "fold -s"
in the interface script will do it at word boundaries and I
bet the printer won't..
Once the print job hits the printer you can get it to reset everything done by the interface by added something like:
<esc>E<esc>&l2a0o6c4e80F<esc>(s0p8.5v16.7h0s0b0T | |that's an ell after the &at which point it won't matter what the interface script is doing. This gives you a half inch margin top and bottom, with 80 print lines at 8 lpi.
FYI, a LaserJet NEVER counts lines as such. It does use the "lines to print" per page to locate the bottom margin which is a function of, quite logically, the top margin size, lines to print, AND the line spacing. More than 66 lines are not going to fit on a letter sized sheet if you are at 6 lpi. When requesting legal size from you, the printer is telling you that the text will NOT fit on the sheet.
If you want to disable the auto formfeed, then try <esc>&l0L, after which your application will have to supply timely formfeeds.
Tack onto the end of the setup string I gave you
<esc>&k2G
That should take care of the "staircase" you are seeing. This code tells the printer to insert a CR when receiving a LF.
The font code I gave you, specifically selects the "line printer" font. With a modern LaserJet, the concept of a "condensed" font becomes somewhat fuzzy, as in your HP4 there are three different typfaces that can be printed at 16.6 cpi. If you only give it the <esc>(s16.6H, I think you would probably end up with courier.
The printer has a whole set of rules that it follows if you give an incomplete font select instruction. While HP has opted for some very reasonable defaults, it can bite you from time to time.
RE: <
The following command line delivers a 160 line text file complete
on 2 pages of 80 lines each.
I see now where the formfeeds are coming from.
The HPLaserJet script pipes "cooked" output through /usr/lib/lprpp,
and that's where it appears the FF's are introduced. I can't find
any documentation for that program.
If the cooked output is piped through "cat" then the FF's disappear.
The only thing I needed to change in my reports is the "lp -s -dlaser" to
"lp -s -dhpfox". I also had to comment out the <ESC>'E' since it appears the
model file is already sending it, when sent twice the output is unpredictible.
The easy Way
I had a few minutes the morning and set up a printer using the
HPLaserJet interface.
lp -d printername -o lpi8 -o l88 -o tl80 -o nobanner filename
Formfeeds
0<${file} eval ${FILTER} | cat 2>&1;;
Comments and suggestions always welcome -
tom@tkrh.demon.co.uk