xref: /dflybsd-src/share/examples/printing/ifhp (revision 86d7f5d305c6adaa56ff4582ece9859d73106103)
186d7f5d3SJohn Marino#!/bin/sh
286d7f5d3SJohn Marino#
386d7f5d3SJohn Marino#  ifhp - Print Ghostscript-simulated PostScript on a DesJet 500
486d7f5d3SJohn Marino#  Installed in /usr/local/libexec/hpif
586d7f5d3SJohn Marino
686d7f5d3SJohn Marino#
786d7f5d3SJohn Marino#  Treat LF as CR+LF:
886d7f5d3SJohn Marino#
986d7f5d3SJohn Marinoprintf "\033&k2G" || exit 2
1086d7f5d3SJohn Marino
1186d7f5d3SJohn Marino#
1286d7f5d3SJohn Marino#  Read first two characters of the file
1386d7f5d3SJohn Marino#
1486d7f5d3SJohn Marinoread first_line
1586d7f5d3SJohn Marinofirst_two_chars=`expr "$first_line" : '\(..\)'`
1686d7f5d3SJohn Marino
1786d7f5d3SJohn Marinoif [ "$first_two_chars" = "%!" ]; then
1886d7f5d3SJohn Marino    #
1986d7f5d3SJohn Marino    #  It is PostScript; use Ghostscript to scan-convert and print it
2086d7f5d3SJohn Marino    #
2186d7f5d3SJohn Marino    /usr/local/bin/gs -dSAFER -dNOPAUSE -q -sDEVICE=djet500 -sOutputFile=- - \
2286d7f5d3SJohn Marino        && exit 0
2386d7f5d3SJohn Marino
2486d7f5d3SJohn Marinoelse
2586d7f5d3SJohn Marino    #
2686d7f5d3SJohn Marino    #  Plain text or HP/PCL, so just print it directly; print a form
2786d7f5d3SJohn Marino    #  at the end to eject the last page.
2886d7f5d3SJohn Marino    #
2986d7f5d3SJohn Marino    echo "$first_line" && cat && printf "\f" && exit 0
3086d7f5d3SJohn Marinofi
3186d7f5d3SJohn Marino
3286d7f5d3SJohn Marinoexit 2
33