b36fde2929
This is a printer filter for the EPSON EPL-5700L, EPL-5800L and EPL-5900L budget models of EPSON's laser printers. This port also provides a driver for apsfilter. PR: ports/48292 Submitted by: Simon 'corecode' Schubert <corecode@corecode.ath.cx>
190 lines
4.1 KiB
Text
190 lines
4.1 KiB
Text
--- ps2epl.orig Wed Jan 29 11:19:06 2003
|
|
+++ ps2epl Fri Feb 14 23:33:46 2003
|
|
@@ -1,11 +1,105 @@
|
|
#!/bin/sh
|
|
|
|
+parse() {
|
|
+if [ ! -r "$1" ]; then
|
|
+ echo "${BASENAME}: Can't read config file '$1'!" >&2
|
|
+ exit 1
|
|
+fi
|
|
+sed -e 's/#.*//;
|
|
+ /^[[:space:]]*$/d;
|
|
+ s/^[[:space:]]*//;
|
|
+ s/[[:space:]]*$//;
|
|
+ s/^\([^[:space:]=]*\)[[:space:]=]*\(.*\)/\1 \2/' "$1" |
|
|
+while read var value
|
|
+do
|
|
+ case `echo ${var} | tr '[[:upper:]]' '[[:lower:]]'` in
|
|
+ model)
|
|
+ case "${value}" in
|
|
+ EPL5[789]00L)
|
|
+ echo "MODEL='${value}'"
|
|
+ ;;
|
|
+ *)
|
|
+ echo "${BASENAME}: Unknown model '${value}'!" >&2
|
|
+ exit 1
|
|
+ ;;
|
|
+ esac
|
|
+ ;;
|
|
+ papersize)
|
|
+ echo "PAPERSIZE='${value}'"
|
|
+ ;;
|
|
+ dpi)
|
|
+ case "${value}" in
|
|
+ 300|Class600|600|Class1200)
|
|
+ echo "DPI='${value}'"
|
|
+ ;;
|
|
+ *)
|
|
+ echo "${BASENAME}: Unknown resolution '${value}'!" >&2
|
|
+ exit 1
|
|
+ ;;
|
|
+ esac
|
|
+ ;;
|
|
+ ritech)
|
|
+ case "${value}" in
|
|
+ on|off)
|
|
+ echo "RITECH='${value}'"
|
|
+ ;;
|
|
+ *)
|
|
+ echo "${BASENAME}: Unknown ritech setting '${value}'!" >&2
|
|
+ exit 1
|
|
+ ;;
|
|
+ esac
|
|
+ ;;
|
|
+ density)
|
|
+ case "${value}" in
|
|
+ [12345])
|
|
+ echo "DENSITY='${value}'"
|
|
+ ;;
|
|
+ *)
|
|
+ echo "${BASENAME}: Unknown density setting '${value}'!" >&2
|
|
+ exit 1
|
|
+ ;;
|
|
+ esac
|
|
+ ;;
|
|
+ tonersave)
|
|
+ case "${value}" in
|
|
+ on|off)
|
|
+ echo "TONERSAVE='${value}'"
|
|
+ ;;
|
|
+ *)
|
|
+ echo "${BASENAME}: Unknown tonersave setting '${value}'!" >&2
|
|
+ exit 1
|
|
+ ;;
|
|
+ esac
|
|
+ ;;
|
|
+ *)
|
|
+ echo "${BASENAME}: Unknown setting '${var}=${value}'!" >&2
|
|
+ exit 1
|
|
+ ;;
|
|
+ esac
|
|
+done
|
|
+}
|
|
+
|
|
+BASENAME=`basename $0`
|
|
+PREFIX=`dirname $0`
|
|
+PREFIX=${PREFIX%/bin}
|
|
+CONFIGFILE=${PREFIX}/etc/epsonepl.conf
|
|
+
|
|
+case "$1" in
|
|
+-f?*)
|
|
+ CONFIGFILE=${1#-f}
|
|
+ ;;
|
|
+esac
|
|
+
|
|
+settings=`parse "${CONFIGFILE}"` || exit 1
|
|
+eval "${settings}"
|
|
|
|
IJSPARMS=""
|
|
|
|
-# Start of printer selection part #########################################
|
|
+if [ -z "${MODEL}" ]; then
|
|
+ echo "${BASENAME}: You must specify a model!" >&2
|
|
+ exit 1
|
|
+fi
|
|
|
|
-MODEL=EPL5700L
|
|
# possible values: EPL5700L, EPL5800L, EPL5900L
|
|
# default: none, you have to specify a printer!
|
|
|
|
@@ -14,7 +108,10 @@
|
|
|
|
# Start of paper size selection part ######################################
|
|
|
|
-PAPERSIZE=a4
|
|
+if [ -z "${PAPERSIZE}" ]; then
|
|
+ echo "${BASENAME}: You must specify a papersize!" >&2
|
|
+ exit 1
|
|
+fi
|
|
# possible values: a4, letter, legal ...
|
|
# The full list is available in the Use.htm file of
|
|
# the ghostscript documentation (see appendix).
|
|
@@ -25,25 +122,29 @@
|
|
|
|
# Start of options part ###################################################
|
|
|
|
-DPI=600
|
|
+if [ -n "${DPI}" ]; then
|
|
# possible values: 300, Class600, 600, Class1200
|
|
# default: 600
|
|
IJSPARMS="EplDpi=$DPI"
|
|
+fi
|
|
|
|
-RITECH=on
|
|
+if [ -n "${RITECH}" ]; then
|
|
# possible values: on, off
|
|
# default: on
|
|
- IJSPARMS="$IJSPARMS,EplRitech=$RITECH"
|
|
+ IJSPARMS="$IJSPARMS${IJSPARMS:+,}EplRitech=$RITECH"
|
|
+fi
|
|
|
|
-DENSITY=3
|
|
+if [ -n "${DENSITY}" ]; then
|
|
# possible values: 1, 2, 3, 4, 5
|
|
# default: 3
|
|
- IJSPARMS="$IJSPARMS,EplDensity=$DENSITY"
|
|
+ IJSPARMS="$IJSPARMS${IJSPARMS:+,}EplDensity=$DENSITY"
|
|
+fi
|
|
|
|
-TONERSAVE=off
|
|
+if [ -n "${TONERSAVE}" ]; then
|
|
# possible values: on, off
|
|
# default: off
|
|
- IJSPARMS="$IJSPARMS,EplTonerSave=$TONERSAVE"
|
|
+ IJSPARMS="$IJSPARMS${IJSPARMS:+,}EplTonerSave=$TONERSAVE"
|
|
+fi
|
|
|
|
##################################################### End of options part #
|
|
|
|
@@ -63,7 +164,7 @@
|
|
done
|
|
|
|
if [ $# -lt 1 -o $# -gt 2 ]; then
|
|
- echo "Usage: `basename $0` [options...] (input.[e]ps|-) [output.epl|-]" 1>&2
|
|
+ echo "Usage: ${BASENAME} [-f<config>] [options...] (input.[e]ps|-) [output.epl|-]" 1>&2
|
|
exit 1
|
|
fi
|
|
|
|
@@ -81,19 +182,11 @@
|
|
outfile="$2"
|
|
fi
|
|
|
|
-echo
|
|
-echo -e "***** Printer: \"$MODEL\" *****"
|
|
-echo
|
|
-echo -e "***** Paper Size: \"$PAPERSIZE\" *****"
|
|
-echo
|
|
-echo -e "***** using parameters: \"$IJSPARMS\" *****"
|
|
-echo
|
|
-
|
|
exec gs -sPAPERSIZE=$PAPERSIZE -dFIXEDMEDIA \
|
|
-sProcessColorModel=DeviceGray -dBitsPerSample=1 \
|
|
-sDEVICE=ijs -sIjsServer=ijs_server_epsonepl \
|
|
-sDeviceManufacturer=Epson -sDeviceModel=$MODEL \
|
|
-sIjsParams="$IJSPARMS" \
|
|
-dIjsUseOutputFD \
|
|
--dNOPAUSE -dSAFER -dBATCH \
|
|
--sOutputFile=$outfile $infile
|
|
+-dQUIET -dNOPAUSE -dSAFER -dBATCH \
|
|
+-sOutputFile="$outfile" "$infile"
|