apsfilter - magic print filter with auto file type recognition
lpr [-Pprinter] [-C option1:...:optionN] [file ...] (lpd style)
lpr [-Pprinter] [-Z option1:...:optionN] [file ...] (LPRng style)
lp [-d printer] [-o option1:...:optionN] [file ...] (Solaris style)
Apsfilter is a magic print filter which allows you to print different
document types “automagically” without having to convert them manually
into a document format which is understood by your printer hardware.
Apsfilter uses third-party software to convert every supported file type
into PostScript (PS) first. If you have a real PS printer, the data
stream is then sent directly to the PS printer, otherwise it is piped
through the famous PS interpreter gs(1) which supports a wide range of
Thus the question whether a particular printer is supported by apsfilter
is actually the question of it either understanding PS directly, or being
supported by gs(1) in some way (possibly using some emulation of another
printer’s software interface, like Epson’s ESC/P2 or HP’s PCL).
Another important thing to remember is that the required driver support
has to be present in the installed gs(1) binary. gs -h lists (among
others) which drivers are currently compiled in. SETUP warns when a
selected driver is missing and guides in choosing another driver.
The FreeBSD ports collection offers an easy and comfortable framework for
FreeBSD users to configure and install apsfilter, gs(1), gs third-party
driver and filter programs for their personal needs.
The apsfilter script is designed to avoid temporary files as much as
possible. So it is very efficient in use and doesn’t fill up filesystems
even when printing large printjobs in high resolution and best print
Apsfilter offers a wide range of customization options through config
files and lpr(1) command line options, see below.
Advantages over other magic filters
Apsfilter and its SETUP is completely written in a script language (see
sh(1) ). So it is easy to understand and modify even for users and admins
who are quite new to the Unix business.
Apsfilter is highly customizable and its developement since 1994 has
shown that it scales very well with the still growing demand of
Apsfilter supports locally connected serial, parallel and USB printers.
Remote printing cababilities: Unix remote printing (lpd protocol),
printing to an AppleTalk remote printer via pap(1) as well as Windows
remote printing via SAMBAs smbclient(1) on Windows 95/98/NT/2000 printer
as guest user or using a real password protected Windows account.
Apsfilter ’s SETUP utility supports in installing all supported printer
types, no matter if local or remote printer, into the printer capability
Supported file types
ar, arc, arj, ASCII, BMP, CAB, cpio, DATA, DVI, FBM, FIG, FITS, GIF,
Group 3 FAX, HTML, IFF ILBM, JPEG, Kodak Photo CD (PCD), LHA, MGR, MIFF,
PAM, PGM, PBM, PNM, PPM, PDF, PNG, Postscript (PS), RAR, RLE, RPM, SGI,
Sketch, Sunraster, TAR, Targa (TGA), TIFF ROFF, WMF, WorPerfect graphics,
XCF, X Pixmap (XPM), X Window dump (XWD), ZIP, ZOO. Note that actual
support depends on the installed filter programs.
Extract the tarball and execute ./configure in the apsfilter directory
(maybe with some options; use ./configure --help to see a listing).
After that, login as root and call make install; then you can set up
printers with /usr/share/apsfilter/SETUP.
SETUP adds the printer to the /etc/printcap database to make it available
to the lpd(8) print spooler, and configures apsfilter for operation with
After successfull installation, SETUP remembers its previous
configuration settings in a file called SETUP.cfg.
Command line options
Several command line options to apsfilter are available which allow the
user to influence the printing quality, color mode, paper size etc. The
handbook includes a detailed listing.
draft Draft quality.
lo|low Low quality.
med|medium Medium quality.
hi|high High quality.
photo Photo quality.
uni|bi Uni-/bi-directional sweeps.
plain Plain paper.
coated Coated (inkjet) paper.
glossy Glossy paper.
premium Premium (photo) paper.
color|colour Color printing.
gray|grey Gray printing.
mono B/W printing.
auto Automatic filetype recognition and data
ascii Force printing as ASCII document. For example to
print Postscript source code without actually
raw Pass-through mode, your print data won’t be
changed by any filter.
Text file filter to use, when printing ASCII
tray0...tray9 Paper feed tray number.
pretty=N highlight level for pretty-printing (N=0,1,2)
header|noheader Whether you want headers in your text prints.
border|noborder Whether you want borders in your text prints.
1pps|2pps|4pps|8pps Pages per sheet.
landscape|portrait Paper orientation.
book Output pages in "book" format, implies
duplex|simplex Whether to use duplex mode or not.
shortbind|longbind Paper binding edge.
copies=N Number of copies.
lpr -C high:color:glossy file.gif tex.dvi.gz file.html ...
prints some files of different types no matter whether compressed or not
on the Unix default printer (see lpr(1) ).
The -C option to the lpr command sets additional ghostscript driver-
specific options. Here, ‘high’ means high resolution (e. g. 600 dpi for
an HP Printer using gs’s “cdj850” printer driver), color output (e.g. 32
bits per pixel), and the paper type is set to glossy paper
lpr -C duplex somefile
enables pseudo duplex printing by halting the print queue after printing
a documents even pages and so giving the user a chance to flip paper and
restart printing after executing a special user command on the command
User gets a notification mail containing a session oriented magic wakeup
command and key which restarts printing of the odd pages of the print
The so called magic command makes sure that only the initiator of the
print job is able to restart printing after reinserting the paper.
Beware, if you have nasty users, this can cause print jobs to hang,
filling up the print queue and at least the /var file system.
/etc/printcap printer capability data base
/usr/share/apsfilter/bin/apsfilter apsfilter script
/usr/share/apsfilter/SETUP printer installation script,
/usr/share/apsfilter/SETUP.cfg saved settings from last printer
/usr/share/doc/apsfilter/handbook.html the apsfilter handbook in HTML
/etc/apsfilter/ configuration directory
/etc/apsfilter/apsfilterrc global configuration file
/etc/apsfilter/apsN/ printer specific configuration
/etc/apsfilter/apsN/apsfilterrc printer specific configuration
$HOME/.apsfilter/apsfilterrc.apsN user definable printer specific
/etc/apsfilter/apsN/smbclient.conf smbclient config file for
printing on Windows remote
/etc/apsfilter/apsN/pap.conf pap config file for printing on
/etc/apsfilter/apsN/lpr.conf config file for remote printer
that needs special treatment
aps2file(1), apsfilter-bug(1), apspreview(1), gs(1), gs-hpdj(1), lpr(1),
smbclient(1), apsfilterrc(5), printcap(5), lpd(8)
See apsfilter software center - http://www.apsfilter.org/ - for new
versions, bugfixes and known bugs.
Please use the new tool apsfilter-bug(1) to release bug- or problem
reports. It automatically presents you a form in an editor window which
asks you some standard questions. If you save and quit the editor
session, then this report is sent automatically via e-mail to the proper
If apsfilter fails to print something or prints it in a way you wouldn’t
expect and you want to report an apsfilter error then please save the
debugging output of one print session using the new aps2file(1) utility
by typing aps2file -D -Z options file > /dev/null 2> file.debug and
including the debugging output in the file file.debug into the edit
session of the apsfilter-bug utility, so that it is included into the
mail to the apsfilter mailinglist.
Please note that you need to run /bin/sh (Bourne Shell), bash or a
compatible shell, so that the above mentioned output redirection works.
Under C-shell (/bin/csh) or tcsh it would’t work. If you don’t know, then
simply make sure you use the Bournce shell by typing /bin/sh or bash,
then you should have no problems with redirection of stdout and stderr (>
/dev/null 2> file.debug).
See official apsfilter homepage
http://www.apsfilter.org/handbook.html Apsfilter Handbook including the
Frequently Asked Questions (FAQ)
Please send questions to the official apsfilter help channel
firstname.lastname@example.org. The above section BUGS and the file
HOWTO-BUGREPORTS tells you how to report bugs. If you want to know how
to troubleshoot your apsfilter installation, please read the manpage
aps2file(1) and apsfilter-bug(1) as well as the Apsfilter Handbook
The apsfilter manpage appeared first in apsfilter V 5.4.0.