next up previous contents
Next: ghostscript Up: Drucken Previous: Netzwerk

Filter

Mittels der Zeile if= wird der Druckdaemon angewiesen, die zu druckende Datei nicht direkt auf den Druckerport zu schicken, sondern erst in ein geeignetes Format umzuwandeln. Voraussetzung ist natürlich, daß der Filter das Einganagsformat kennt und ein oder mehrere Programme auf dem System existieren, die etwas mit dem Format anfangen können, so daß zum Schluß Postscript herauskommt.

Schauen wir uns mal einen Filter des magicfilter-Paketes an:

#! /usr/sbin/magicfilter
#
# Magic filter setup file for 300 DPI LaserJet 4 series without PostScript
# (i.e. LJ 4L)
#
# Basierend auf ljet4l Filter von Matthias Kabel 12.10.99 
#

# PostScript
0 %!              filter  /usr/bin/gs  -q -dSAFER -dNOPAUSE -r300 -sDEVICE=lj4dith -sOutputFile=\|"cat 1>&3" - 3>&1 1>&2 
0       \004%!          filter  /usr/bin/gs  -q -dSAFER -dNOPAUSE -r300 -sDEVICE=lj4dith  -sOutputFile=\|"cat 1>&3" - 3>&1 1>&2 

# PDF
0 %PDF            fpipe   /usr/bin/gs  -q -dSAFER -dNOPAUSE -r300 -sDEVICE=lj4dith -sOutputFile=\|"cat 1>&3" $FILE 3>&1 1>&2 


# TeX DVI
0       \367\002        fpipe   /usr/bin/dvips  -D 300  -R -q -f 

# compress'd data
0       \037\235        pipe    /bin/gzip  -cdq 

# packed, gzipped, frozen and SCO LZH data
0       \037\036        pipe    /bin/gzip  -cdq 
0       \037\213        pipe    /bin/gzip  -cdq 
0       \037\236        pipe    /bin/gzip  -cdq 
0       \037\240        pipe    /bin/gzip  -cdq 

# troff documents
0       .\?\?\040       ffilter `/usr/bin/grog  -Tlj4 $FILE` 
0       .\\\"           ffilter `/usr/bin/grog  -Tlj4 $FILE` 
0       '\\\"           ffilter `/usr/bin/grog  -Tlj4 $FILE` 
0       '.\\\"          ffilter `/usr/bin/grog  -Tlj4 $FILE` 
0       \\\"            ffilter `/usr/bin/grog  -Tlj4 $FILE`

Kommentarzeilen fangen wie üblich mit # an und werden ebenso wie Leerzeilen nicht beachtet.

In der zweiten Spalte steht die magische Sequenzän der der Dateityp erkannt wird. (Die Endung spielt keine Rolle!), dabie wird in der ersten Spaltte angegeben mit welchem Offset vom Beginn der Datei diese Sequenz zu finden ist.

In der dritten Spalte findet man die Art der Aktion, die mit der Datei angestellt werden soll.

filter
arbeitet das gegebene Kommando ab und schickt das Ergebnis zum Drucker
pipe
arbeitet das Kommando ab und schickt das Ergebnis erneut in den Filter zurück. (Da sieht man den Vorteil der automatischen Erkennung des Dateityps anhand des Inhalts)
ffilter, fpipe
das gleiche wie oben, das Ergebnis wird jedoch in eine Datei (file) geschrieben und dann wieder eingelesen. Dies ist sinnvoll für Programme wie dvips, die eine Datei erwarten.

Mittels dieser Kommandos ist es nun möglich eine Datei über beliebig viele Zwischenschritte in Postscript zu wandeln, um dieses dann it gs in ein Format für einen bestimmten Drucker umzuwandeln.


next up previous contents
Next: ghostscript Up: Drucken Previous: Netzwerk
Matthias Kabel
2000-01-23