Version ifhp-3.5.8 - Mon Apr 1 17:14:06 PST 2002
New 'Appsocket' support and configuration
lp:
:lp=host%port
:ifhp=model=xxx,appsocket
:filter=/.../ifhp
#:of=/.../ifhp
You do not need to have /dev/null now, you can have LPD
open the connection, and then IFHP will simply use the
connection information. This greatly simplifies things.
Note that you MUST use ifhp 3.5.8 or later for this to work.
The 'Read_status' code has been savagely attacked,
once again, and the varous insane combinations of
devices that have read return 0 or -1 when there is
no data has been worked at again.
Also, the code for parsing return status has been
looked at and the odd case of PostScript printers that
return a 'print' value WITHOUT a CR/LF has been attempted
to be solved... I hope this is the last time we go around
the rose bush on this one.
Also, the Xerox/Phaser 5400 has been added. This device
has the obnoxious habit of returning a JOB ID whose key (ID)
conflicts with the INFO ID key (ID). So we ignore any
ID keys/value pairs unless they are returned by the 'PJL INFO'
status.
hp4l entry modified, Using 'laserjet', the printed area is shifted
to the right on a 'portrait letter' piece of paper. Using 'ljet4',
it prints centered. I.e., it looks better.
(From: Luca Filipozzi <[EMAIL PROTECTED]>)
ps_eoj, ps_eoj_at_start, ps_eoj_at_end now work correctly
Once again the 'Appsocket' stuff rears its ugly head.
Added a 'shutdown(1,SHUT_RW)' to FORCE the &*()()*& connection
to the printer to be clobbered. Grrrr.. Also, added a check
for the special case when appsocket is specified and you
are using the OF filter (banner printing).
STATUS HELPERS
sync=|/path_to_program
pagecount=|/path_to_program
waitend=|/path_to_program
The sync, pagecount, and waitend functions can be implemented by
running a 'status helper' program. These programs are run with:
STDIN = printing device
STDOUT = STDERR = status
Information written to STDOUT/STDERR should have the format: key=value
as for PJL status information. The same processing is done for this
information as for the PJL USTATUS information, so you can return
an error code (CODE=xxxx) value that will be treated as a PJL USTATUS
error.
The following are 'special' keys:
KEY VALUE
sync 1 (or nonzero) - sync is done
waitend 1 (or nonzero) - waitend is done
pagecount nnn - pagecounter value
Note: you can use a single program to do all 3 operations,
in which case simply write 3 lines with sync, waitend, and pageount
values, i.e:
sync=1
pagecount=205667
waitend=1
Alternatively, if the sync,waitend, or pagecount
program exits with 0 status, then success is assumed,
otherwise IFHP will exit with an error status.
Exit code:
JSUCC - 0 - success
JFAIL - 1 - fail with retry later
JABORT - any other code
Added special case parsing for PostScript printers
that do not put NL (\n) at the end of error messages.
Now handles %%[ status: xxx ]%%%%[ stuff: xxx ]%%
correctly as
%%[ status: xxx ]%%
%%[ stuff: xxx ]%%
(Pointed out by a Netatalk user:
Rob Joyce <[EMAIL PROTECTED])
I have added some fine grain control to pagecount_poll
operations:
The page count will be sampled 'pagecount_poll' times (0 or 1 is once)
until it is stable, at pagecount_interval seconds.
The pagecount_poll is for desperation only
- default is pagecount_poll
- pagecount_poll_start specifies number of polls at start
- pagecount_poll_end specifies number of polls at end
You can specify a non-zero pagecount timeout that will limit
the amount of time that you try to get pagecounts
This is dangerous if you are trying to get status by polling
However, if your printer goes off line, then you may have
similar problems.
# pagecount_poll=5 default
# pagecount_poll_end=5 number of polls at start
# pagecount_poll_start=1 number of polls at end
# pagecount_interval=1 interval to poll
# pagecount_timeout=0 timeout for pagecount
Added a new device: ps_appletalk
This handles the case where you talk to a PostScript
printer via the netatlk 'pap' routine. The connected printer
seems to not handle ^D or ^T, so you have to not put them there.
It also seems that the printers may/will get pagecount and status
information BUT they do not correctly indicate end of job.
In this case you need to do pagecounting via polling:
lp:ifhp=model=ps,ps_eoj@,ps_ctrl_t@,pagecount_poll_start=1,pagecount_poll_end=5
Patrick Powell Astart Technologies,
[EMAIL PROTECTED] 9475 Chesapeake Drive, Suite D,
Network and System San Diego, CA 92123
Consulting 858-874-6543 FAX 858-279-8424
LPRng - Print Spooler (http://www.lprng.com)
-----------------------------------------------------------------------------
YOU MUST BE A LIST MEMBER IN ORDER TO POST TO THE LPRNG MAILING LIST
The address you post from MUST be your subscription address
If you need help, send email to [EMAIL PROTECTED] (or lprng-requests
or lprng-digest-requests) with the word 'help' in the body. For the impatient,
to subscribe to a list with name LIST, send mail to [EMAIL PROTECTED]
with: | example:
subscribe LIST <mailaddr> | subscribe lprng-digest [EMAIL PROTECTED]
unsubscribe LIST <mailaddr> | unsubscribe lprng [EMAIL PROTECTED]
If you have major problems, send email to [EMAIL PROTECTED] with the word
LPRNGLIST in the SUBJECT line.
-----------------------------------------------------------------------------