NAME¶
ifhp - Almost Universal LPRng Print Filter
SYNOPSIS¶
ifhp
 
[-F format] [-s statusfile] [-?value (other LPRng filter options)]
 
 
[-Z[options[,options]*]*
 
[-T[options[,options]*]*
 
[accountingfile]
 
 
ifhp.conf(configuration file)
DESCRIPTION¶
The 
ifhp is a general purpose filter for allmost all PostScript, PJL,
  PCL, and text based line printers.
The 
ifhp filter resets and synchronizes the printer, gets accounting
  information, and then checks the file to determine its format. Based on the
  format, it will do PCL, PostScript, or other initializations, and then
  transfer the file to the printer. Termination sequences are sent, followed by
  getting accounting information.
OPTIONS AND CONFIGURATION¶
Options controlling 
ifhp operations are specified by 
-Toption or
  
-Zoption values. These options have the form:
Form          Same As
flag          flag=1
flag@         flag=0
flag=str  
flag#str
The complete set of options and their effect on operation are detailed in the
  IFHP-HOWTO document. The following is a brief list of the more important ones
  that will have a dramatic effect on printer operation.
 
  - model	=modelid
 
  - 
    
 
    
    Specifies the printer modelid information. This is used to select an
      appropriate configuration from the ifhp configuration file. 
  - status (status@)
 
  - 
    
 
    
    The status option enables checking for status information from the
      printer. See STATUS, SYNC, WAITEND, AND PAGECOUNT for details. 
  - sync (sync@, sync=ps, sync=pjl)
 
  
  - waitend (waitend@, waitend=ps, waitend=pjl)
 
  - 
    
 
    
    If the status option is enabled, sync will check to see that
      the printer is online and ready and the waitent will check that the
      job has finished. The sync@ and waitend@ will suppress these
      checks. See STATUS, SYNC, WAITEND, AND PAGECOUNT for details. 
  - pagecount (pagecount@, pagecount=ps,
    pagecount=pjl)
 
  - 
    
 
    
    If the status option is enabled, pagecount will try to get the
      value of the printer pagecounter. See STATUS, SYNC, WAITEND, AND
      PAGECOUNT for details. 
  - config=path,path,...
 
  - 
    
 
    
    pathnames of configuration files to read to obtain printer configuration
      information. 
  - debug=debuglevel
 
  - 
    
 
    
    Set the debugging level. A larger number causes more verbose error messages.
      You have been warned. 
  - trace
 
  - 
    
 
    
    Sends out debugging and tracing information on STDERR as well as to the
      status log file. 
  - stty=options
 
  - 
    
 
    
    Sets serial line configuration when a dev entry specified. 
STATUS, SYNC, WAITEND, AND PAGECOUNT¶
If the 
status option is true, then the 
ifhp filter will assume
  that the printer is attached by a bidirectional channel and will attempt to
  read status information from the printer. This also enables the 
sync,
  sync and 
pagecount handshaking and getting pagecount information
  from the printer.
The 
sync flag causes a special PJL job or PostScript job to be sent to
  the printer at the start of printing at periodic intervals. This job has the
  property that it will attempt to put the printer into a sane state and cause
  it to return status information. By default, if the printer supports PJL then
  the PJL job is used, otherwise if it supports PostScript, the PostScript job
  is used. You can force the sync method using 
sync=pjl or 
sync=ps
  if necessary, and suppress it using 
sync@
The 
waitend flag causes a special PJL job or PostScript job to be sent to
  the printer at the end of the job at periodic intervals. This job has the
  property that it will attempt to put the printer into a sane state and cause
  it to return status information. By default, if the printer supports PJL then
  the PJL job is used, otherwise if it supports PostScript, the PostScript job
  is used. You can force the waitend method using 
waitend=pjl or
  
waitend=ps if necessary, and suppress it using 
waitend@
The 
pagecount flag causes a special PJL job or PostScript job to be sent
  to the printer at the start and end of the job. This job has the property that
  it causes the printer to return the value of a hardware page counter. By
  taking the difference of the start and end values of the pagecounter, an
  accurate measure of the number of pages (or impressions for some duplex
  printers) can be done. By default, if the printer supports PJL then the PJL
  job is used, otherwise if it supports PostScript, the PostScript job is used.
  You can force the pagecount method using 
pagecount=pjl or
  
pagecount=ps if necessary, and suppress it using 
pagecount@
The IFHP filter will puts tracing and status information in the file specified
  by the 
-s command line flag. If the status file does not exist, it will
  not be created. The diagnostic 
trace flag overrides this and directs
  the status to STDERR.
The pagecount information is put into the accounting file specified on the
  command line. If the accounting file does not exist, it will not be created.
JOB PROCESSING (LPR -Z) OPTIONS¶
The 
lpr program passes the command line -Z options or the 
lp
  program -o options to the LPRng 
lpd server which then passes them to
  the ifhp filter. The options are used to control various printing features.
  For example if duplex printing and landscape is wanted, then
 
	lpr -P<printer> -Z'duplex,landscape' <file>
 
Since each printer has a different set of capabilities there are no standard set
  of -Z options. The following is a sample of the options provided by
  
ifhp. Check the ifhp.conf file for all of the options supported by the
  printer.
  - Input Tray Selection
 
  - 
    
 
    inupper, inlower, intray1, intray2, intray3, manual, envelope
     
    source=name
     
    The input tray selection options should start with the in prefix and
      corresponds to the various trays. The manual and envelope options are
      included to select manual feed or envelope feed. There is a possible
      source of conflict here as there may be an envelope feeder as well as an
      envelope media. This is a printer specific dependency.
     
    The source=name option allows users to use options such as -Zsource=inbin1,
      which may be useful for systems that have an unusual or nonstandard input
      selection mechanism. se select media (paper) from the specified tray or
      feeder. 
  - Output Bin Selection
 
  - 
    
 
    outupper, outlower, outbin1
     
    outbin=name
     
    The output bin selection should start with the out prefix.
     
    The outbin=name form allow users to use options such as -Zoutbin=stapler,
      which may be useful for systems that have an unusual or nonstandard output
      selection mechanism. 
  - Media Size Selection
 
  - 
    
 
    a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 b0 b1 b2 b3 b4 b5
archA archB archC archD archE flsa flse halfletter
note letter legal 11x17 ledger tabloid
    
     
    paper=name
     
    The paper size selection facilities usually are quite printer dependent, and
      the input tray selection and paper size selection mechanisms may interact
      in strange and mysterious ways.
     
    The paper=name form allow users to use options such as -Zpaper=b3, which may
      be useful for systems that have an unusual or nonstandard input media
      selection mechanism. 
  - Media Type Selection
 
  - 
    
 
    plain, preprinted, letterhead, transparency, glossy, prepunched, labels
     
    bond, recycled, color, heavy, cardstock
     
    Media Type is not the same as paper size, and corresponds to the name
      assigned to a particular media. Of course, the issue is complicated by the
      fact that some media have standard sizes as well. Again, the input tray
      selection, media size, and media type selection will interact in confusing
      and mysterious ways, depending on the whim of the printer firmware
      iplementors.
     
    You will notice that there is no generic mediatype=name facility. This is
      due to the radically different way that PostScript, PJL, PCL, etc., each
      handle media name and selection. While it is possible to determine the
      various strings, numbers, escape codes, etc., that need to be sent for
      each mediatype, a general mechanism is too fragile and fraught with peril
      for the unwary administrator to provide. You have been warned. Been there
      and have the scars to prove it.
     
    These are commonly used media type names gleaned from various PostScript
      Printer Description Files, Microsoft printer drivers, and arcane lore of
      the Printer Working Group. Note that these are not accepted terms in the
      paper industry for any of these type of media. You are warned. 
  - Duplex/Simplex
 
  - 
    
 
    duplex (lduplex) duplexshort (sduplex)
     
    simplex
     
    tumble (shortedge)
     
    The duplex (alias lduplex) and duplexshort (alias sduplex) will print on
      both sides of the paper; duplexshort will reverse the orientation; simplex
      will print only on one side of the paper.
     
    The tumble (shortedge) will reverse the orientation of the paper. Used when
      printing facing pages of duplex and there is a desperate need for this
      orientation. 
  - Copies
 
  - 
    
 
    copies=N
     
    Be aware that this option is totally bogus is usually ignored (except when
      you expect it to be ignored). You have been warned. 
OF MODE¶
The 
OF mode of operation is selected by the 
-Fo command line
  option. When operationg in OF mode it will scan the input for a two character
  stop sequence \031\011. When it finds the sequence it will suspend itself. The
  spooler will restart the filter with a SIGCONT signal when it has more output
  for it.
FILES¶
  - /etc/ifhp.conf
 
  - 
    
 
    Configuration files 
  - /usr/lib/ifhp/ifhp
 
  - 
    
 
    Executables. 
SEE ALSO¶
The IFHP-HOWTO document, which is included as part of the IFHP distribution.
  This is the principle reference for this filter.
 
lpd(8), 
printcap(5).
 
FTP sites: ftp://ftp.lprng.com
 
WEB sites: http://www.lprng.com
 
Mailing List.  Send email to lprng-request@lprng.com
with the word 'subscribe' in the boyd.
BUGS¶
They are not bugs. They are mis-documented features.
AUTHOR¶
The IFHP filter was inspired by the LPRng CTI-ifhp filter, which was a
  descendent of the print filters developed by the 
CTI-Print project at
  the 
Division of Computing Facilities of the 
Computer Technology
  Institute (CTI), Patras, Greece.
AUTHORS¶
Patrick Powell,
Astart Technologies,
San Diego, CA
<papowell@lprng.com>