mirror of
https://github.com/mabam/CAP.git
synced 2024-06-01 10:41:29 +00:00
223 lines
8.3 KiB
Plaintext
223 lines
8.3 KiB
Plaintext
PAPIF notes and installation
|
|
|
|
papif is the formatted text "input" filter for the BSD lpd spooling
|
|
system. (It is assumed you have a basic knowledge of how this works).
|
|
You should examine the papif manual page in cap/man/papif.8 before
|
|
proceeding.
|
|
|
|
A sample entry for the /etc/printcap file is in printcap.samp1.
|
|
|
|
See the section "LP under A/UX" below for directions on using papif on
|
|
A/UX.
|
|
|
|
papif has been redesigned since CAP distribution 4. One of the
|
|
advantages is that its behavior is much closer to that of "pscomm" --
|
|
the Adobe Transript filter for serial line LaserWriters. You should
|
|
be able to use papif in place of pscomm without ill effects in the
|
|
"psif" shell script.
|
|
|
|
In addition, papif no longer forks off a process to deal with the
|
|
status information. papif will run in a single fork unless the pstext
|
|
or psrv filters are used. If the pstext or psrv filters are used,
|
|
papif will normally place these filters in front of itself (in that
|
|
order) unless the input is not from a disk file. Since papif must
|
|
read the beginning of the file, it is necessary to be able to backup
|
|
in the input stream. To do this when the input is not "rewindable",
|
|
papif will fork off a "<stdin>" process in front of itself to
|
|
"virtually" rewind the input. Though papif could do this internally
|
|
for itself, it cannot do this for the pstext and psrv filters. When
|
|
the "<stdin>" process is invoked, pstext and psrv are run from the
|
|
"<stdin>" process and place between "<stdin>" and papif.
|
|
|
|
papif now "selects" on its input to keep it from blocking when the
|
|
input is from a pipe. This is suspected as being one of the main
|
|
causes of the "idle bug".
|
|
|
|
Note: you may wish to reset the LaserWriter "timeout" variable. The
|
|
"timeout" value specifies the amount of time to wait for input before
|
|
issuing a "timeout" error. If you have page reversal on, this could
|
|
be more than the default of 30 seconds. You can change it to 300
|
|
seconds with the following postcript code:
|
|
%!
|
|
serverdict begin 0 exittoserver
|
|
statusdict begin
|
|
defaulttimeouts pop 300 setdefaulttimouts
|
|
This should permanently install the value into the eeprom.
|
|
|
|
|
|
DEFINES/SETTABLE OPTIONS
|
|
------------------------
|
|
|
|
Defines are used to set the "standard" behavior of papif. Most of the
|
|
defines are not "hard" in that they may be modified via the use of
|
|
environment variables (see manual page).
|
|
|
|
Defines are best set by changing m4.setup and reconfiguring your
|
|
makefiles. See [psrevloc], [pstextloc], [papflags], [papbanner] in
|
|
m4.setup.
|
|
|
|
In the following, a binary option is set:
|
|
in defines by defining the specified option
|
|
|
|
TRANSCRIPT COMPATIBLITY
|
|
-----------------------
|
|
|
|
A number of options have been installed to make papif compatible with
|
|
Transcript filters and scripts.
|
|
|
|
* BANNERFIRST, BANNERLAST and CHARGEBANNER: define in psbanner
|
|
|
|
BANNERFIRST says to printer the banner first and BANNERLAST to
|
|
print it after all other printing. The default is neither.
|
|
|
|
CHARGEBANNER is a papif specific binary option. If set, banner pages
|
|
will be charged to the user if accounting is being done. The default
|
|
is off.
|
|
|
|
Note if you wish to define banner pages as on, you must have an
|
|
"output" filter that presents a ".banner" file in PostScript format.
|
|
CAP includes a filter "psof" that accomplishes this. You should also
|
|
be able to use the standard Transcript filter for this as well.
|
|
|
|
* VERBOSELOG: default is always on, cannot be defined, but may be
|
|
modified via the environment.
|
|
|
|
VERBOSELOG tells papif to be verbose in its logging
|
|
|
|
* REVERSE: set psrevloc in m4.setup or define WPSREVERSE in the makefile
|
|
|
|
REVERSE contains the location of the page reversal filter. This is a
|
|
standard part of Transcript. The default is none.
|
|
|
|
* PSTEXT: set psrevloc in m4.setup or define WPSREVERSE in the makefile
|
|
|
|
PSTEXT contains the location of the text filter that translates plain
|
|
text to PostScript. This is a standard part of Transcript. The
|
|
default is none.
|
|
|
|
* TRANS3: defined in m4.features
|
|
|
|
TranScript 3.0 compatibility. Assumes that psdman will be used
|
|
instead of pstext, and so it automatically gives psdman the required
|
|
-P printer argument. Also assumes that RUTGERS is not defined.
|
|
|
|
* DUPLEXMODE: defined in m4.features
|
|
|
|
support full-duplex printing. This code was written and tested with
|
|
an HP LaserJet IIIsi with a PostScript card. What it does is if papif is
|
|
given the -2 switch, or if the printer name ends in -dup* (e.g. lw-duplex,
|
|
lj-dup, lpr-dupsomething), it will add the following bit of PostScript code
|
|
to the prolog:
|
|
|
|
statusdict begin true setduplexmode end
|
|
|
|
OTHER NON Transcript OPTIONS
|
|
----------------------------
|
|
|
|
* CAPPRINTERS: defined in papflags, m4 macro: capprinters
|
|
|
|
defines the name of the cap.printers file. The default is
|
|
/etc/cap.printers.
|
|
|
|
* NO_STRUCT: defined in papflags
|
|
|
|
PAPIF has a minimal understanding of the Adobe Systems Document
|
|
Structuring Conventions (to wit, it understands the "%%EOF" marker).
|
|
If this cause problems, you can turn it off by defining NO_STRUCT when
|
|
compiling (in papflags).
|
|
|
|
* NOACCT: defined in papflags
|
|
|
|
Setting this turns accounting off by default.
|
|
|
|
* IDLESTUFF: defined in papflags
|
|
|
|
Some sites have reported seeing an "idle" bug where papif doesn't do
|
|
anything while the LaserWriter is idle. You can define "IDLESTUFF"
|
|
when compiling papif to enable some code to get around this problem.
|
|
It is unclear if this option works properly anymore.
|
|
Note: with the new release of papif, this problem shouldn't be there
|
|
anymore, but it is included just in case.
|
|
|
|
* SFLOWQ: defined in papflags
|
|
* RFLOWQ: defined in papflags
|
|
|
|
PAPIF has a settable "Send Flow Quantum multiplier" called SFLOWQ that
|
|
tells them how many pkts it should be sending in a single write. You
|
|
should set this to 1 if you have problems with the FastPath or
|
|
LaserWriter dropping packets. The odds are that you want it set to 1.
|
|
The default is 8.
|
|
|
|
RFLOWQ is the same thing but in the other direction. You can probably
|
|
leave it set to the default of 8 (the maximum).
|
|
|
|
* ATPRESPONSETIMEOUT: may be defined in papflags
|
|
|
|
This defines the ATP response cache timeout in ticks (1/4 second
|
|
intervals). (Note: zero is infinity: it never times out). This is
|
|
used to extend the time that a response from the LaserWriter may take.
|
|
The default is 2 minutes.
|
|
|
|
* WATCHTIME: may be defined in papflags
|
|
|
|
This defines the minimum interval in seconds that will take place
|
|
before papif polls the LaserWriter for its status (and updates the
|
|
status file in the spool directory). The default is 10 seconds.
|
|
|
|
* DEBUG: may be defined in papflags
|
|
|
|
tells papif to print out debugging information. default is off.
|
|
|
|
The following two options are considered dangerous because they may
|
|
interfere with binary data, etc.
|
|
|
|
* STRIPCONTROLD: may be defined in papflags
|
|
|
|
tells papif to strip control-d -- mainly for use with pcnfsd. Default
|
|
is off.
|
|
|
|
* MAPCRTOLF: may be defined in papflags
|
|
|
|
tells papif to map carriage return to line feed for input from a
|
|
Macintosh. Default is off.
|
|
|
|
|
|
USING PAPIF WITH LP ON A/UX (Release 1)
|
|
---------------------------------------
|
|
|
|
There is already some lp support for an AppleTalk LaserWriter (from
|
|
Adobe's TranScript for System V). It just needs some adjusting. If
|
|
you used Configure, then papif should have the proper parameters set
|
|
under A/UX.
|
|
|
|
Most of these steps require you to run as root.
|
|
|
|
The first step is to install a printer using the ADD_AT_LW script in
|
|
/usr/spool/lp. For example:
|
|
/usr/spool/lp/ADD_AT_LW ps8
|
|
where ps8 is the printer name.
|
|
|
|
After this, the interface file that derives from the atpsiface model
|
|
must be editted. With a printer name of ps8 as above, the interface
|
|
file can be found in /usr/spool/lp/interface/ps8.
|
|
|
|
Do the following:
|
|
o set "send" to point a system copy of papif
|
|
o set "sendopts" to "-P $pr -n $2 -h <your hostname>"
|
|
[both -n and -h are optional, but it does make things]
|
|
[look better]
|
|
o change all (three) occurances of REVERSE to "DOREVERSE"
|
|
[REVERSE is used as flag here, but as a pointer to the
|
|
the name of the page reversal filter in the BSD version
|
|
of TranScript. Not doing this will just cause papif to
|
|
print out some unnecessary warning messages]
|
|
|
|
The printer should now work!
|
|
|
|
You might also want to remove the sections that send the banner file
|
|
and set "BANNER" (remembering to "export" it) to the banner file name
|
|
--papif will then send the banner file in the same job stream as the
|
|
print requests. This has the side effect that multiple copies will
|
|
result in a banner file per copy.
|
|
|