.TH MAGICFILTER-T 5 "Version @VERSION@" "2002/08/15" \" -*- nroff -*- .SH NAME magicfilter-t \- format of compiled printer description files. .SH DESCRIPTION Compiled printer description files are simple templates showing what actions to perform given a specific file magic pattern. They are used by .B magicfilter-t to redirect various types of data to the various conversion utilities. Each filter contains a sequence of lines of the form: .PP .I "/pattern/ action/hint/ arguments" .PP where the .I /pattern/ is compared against what .B file (1) reports as the filetype, .I action is what should be done with it, .I /hint/ (optionally) tells magicfilter what format the processed file is, and .I arguments are passed to the action. Blank lines and lines with a hash mark (#) as the first nonblank character are ignored. A line may be continued onto the next line by ending the line in a backslash (\e). For ambiguous matches, the first match is used. Hence, the most specific match should always be placed first in the file. There is .B no default pattern -- if the file type is not matched, .B magicfilter will reject the print request. If you wish a default pattern, you can use an empty pattern to do something like: .PP .NF // pipe @filterdir@/textonly .FI .PP To use Ed Lim's .B textonly program to print the file out after a little paranoia to make sure that it's not a binary. .SS FACILITIES .B magicfilter-t provides the following options for the .I facility field in the configuration file: .TP \fBcat\fR [\fIprefix\fR [\fIsuffix\fR]] Copy the input to the output without any conversion, like the .B cat command. If the optional .I prefix and .I suffix strings are specified, they are transmitted to the printer immediately before and after the data itself. The .I prefix and .I suffix strings can include escape sequences like \ee (escape) To specify a .I suffix without a .IR prefix , specify an empty .I prefix string enclosed in double quotes (i.e. ""). .TP \fBtext\fR [\fIprefix\fR [\fIsuffix\fR]] Copy the input to the output, but add carriage return characters before every line feed and form feed character in the file, and a line feed-form feed sequence at end of file. The .I prefix and .I suffix arguments are treated the same way as for the .B cat facility; the .IR suffix , if present, is added after the final line feed-form feed sequence. .TP \fBpostscript\fR Same as the .B text facility, except add an ASCII EOT (Ctrl-D) character to the end of the data. This lets a PostScript printer know that the end of the job has been reached. This is functionally equivalent to the command .TP .I " " \fBtext\fR "" \e004 .TP \fBignore\fR Ignore the job; do not provide any output whatsoever. .TP \fBreject\fR \fImessage\fR Same as the .B ignore facility, but attempt to send an email message to the user who submitted the job to inform that a job has been rejected and why. .TP \fBfilter\fR \fIcommand\fR Run the given .IR command , feeding it the input data, and sending the output data to the printer. The environment variables .BR LPUSER , .BR LPHOST , and .B LPINDENT is set to the values of the user, host and indent options passed to .BR magicfilter . Since the .I command is fed to .I /bin/sh it may contain shell special characters, and the sequences .BR $LPUSER , .BR $LPHOST , and .B $LPINDENT can be used to access the values of the passed environment variables. If the .B lpd daemon on the system is LPRng, the following environment variables are also available, see the .B OPTIONS section for details: .BR LPCLASS , .BR LPFORMAT , .BR LPJOB , .BR LPCOPIES , .BR BANNERNAME , .BR PRINTER , .BR LPQUEUE , .BR LPACCT , and .BR ZOPT . .TP \fBpipe\fR \fIcommand\fR Same as the .B filter facility, except that the output data is fed back into .B magicfilter-t for reprocessing. This is used for external filter programs which themselves do not produce a format that the printer can accept, but which can be futher processed to obtain such a format. .TP \fBffilter\fR \fIcommand\fR .sp -0.5 .TP \fBfpipe\fR \fIcommand\fR Same as the .B filter and .B pipe facilities, respectively, except that the input is written to a temporary file before being fed to the filter program given by .IR command . This is useful for programs which require seekable input, such as .BR dvips , or which need to do multiple passes over an input file, such as .BR grog . The environment variable .B FILE is set to the name of the temporary file (and, like the other ones, it can be accessed on the command line as .BR $FILE ). .SH HINTS Using the .B pipe facility together with .B zcat or .B gunzip lets you transparently print compressed files. .PP The .B pbmplus or .B netpbm collections of image conversion utilities contain a large number of very useful external filter programs. .PP You will probably want to examine the sample configuration files included with the .B magicfilter distribution before creating your own. .SH BUGS Currently, there is no protection against the .B pipe or .B fpipe facilities going into an infinite loop. .SH AUTHOR H. Peter Anvin , David Parsons .SH SEE ALSO .BR printcap (5), .BR magicfilter (5), .BR lpr (8), .BR dvips (1), .BR grog (1), .BR gs (1), .BR gzip (1), .BR troff (1).