Filters provide a means by which data can be transformed. For example, in our environment we have QMS laser printers. While the QMS printers are supposed to automatically determine whether a job is postscript or ascii, it does this in a brain-dead manner. We have written a filter that examines the first few hundred lines of the file and does the determination for us. If it is postscript it prefixes some special commands at the beginning of the job, if ascii it uses a different set.
Filters are also available for providing graphics conversion and document conversion.
One consequence of this design is that filters are only available on the machine where the printer is attached. Thus, when connecting to non-unix hosts filters are often not supported. The printcap file has a format similar to the termcap and gettytab files. Below is a sample entry for a local and remote printer. Get information needed to create printcap entry such as remote machine name, remote printer name, and the queue name to use.