Filtry
lpd byl vzvinut v době, kdy byly k dispozici pouze jednoduché řádkové tiskárny a uživatelé chtěli tisknout maximálně nějaký ASCII text.
Proto když je potřeba vytisknout nějaký složitější formát, musíme na tiskovou úlohu aplikovat vstupní filtr.
Tyto filtry mohou být od několikařádkových skriptíků až po velmi sofistikované nástroje.
Příklad jednoduchého filtru pro změnu znaku konce řádku:
#!/usr/bin/perl
while ()
{
chop $_;print "$_\r\n";
};
print "\f";
Filtr pro tisk PostScriptu:
#!/bin/bash -
PRNAME="'basename $0'"
USER=nobody
MACHINE='uname -n'
renice 9 $$ > /dev/null 2>&1
while [ "$1" != "" ] ; do
case "$1" in
-n)
shift ; USER=$1
;;
-h)
shift ; MACHINE=$1
;;
esac
shift
done
gs -q -dSAFER -dNOPAUSE -sDEVICE=cdj550 -sPAPERSIZE=a4 \
-dBitsPerPixel=24 -dShingling=2 -r300x300 -sOutputFile=- -
logger -p notice "lp-daemon: User $USER, Machine $MACHINE, Printer $PRNAME" >&2
exit 0
Nejpropracovanější jsou tzv. magické filtry, které dokáží samy rozpoznat co mají na vstupu a na základě toho vybrat správný filtr a nagenerovat výstup na tiskárnu.
Sem patří např. APS Filter nebo RHS-Printfilters.