#! /bin/csh # # Brother Print filter # Copyright (C) 2004 Brother. Industries, Ltd. # Ver0.80 # This program is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the Free # Software Foundation; either version 2 of the License, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for # more details. # # You should have received a copy of the GNU General Public License along with # this program; if not, write to the Free Software Foundation, Inc., 59 Temple # Place, Suite 330, Boston, MA 02111-1307 USA # set LOGFILE=/dev/null set LOGLEVEL=1 set DEBUG=0 set LOG_LATESTONLY=1 set errorcode=0 if($DEBUG != 0) then set LOGFILE=/tmp/br_cupsfilter_debug_log endif set PRINTER=DCP110C set BRPRINTCONFIG=brprintconfij2 set printerdefaults = ( \ "$BRPRINTCONFIG -P $PRINTER -md PLAIN" \ "$BRPRINTCONFIG -P $PRINTER -reso 300" \ "$BRPRINTCONFIG -P $PRINTER -bidir ON" \ "$BRPRINTCONFIG -P $PRINTER -mirro OFF" \ "$BRPRINTCONFIG -P $PRINTER -pt A4" \ "$BRPRINTCONFIG -P $PRINTER -thick REGULAR" \ "$BRPRINTCONFIG -P $PRINTER -feed AUTO" \ "$BRPRINTCONFIG -P $PRINTER -copy 1" \ "$BRPRINTCONFIG -P $PRINTER -corm COLOR" \ "$BRPRINTCONFIG -P $PRINTER -doc PHOTO" \ "$BRPRINTCONFIG -P $PRINTER -cm NATURAL" \ "$BRPRINTCONFIG -P $PRINTER -ht DIFFUSION" \ "$BRPRINTCONFIG -P $PRINTER -ce OFF" \ "$BRPRINTCONFIG -P $PRINTER -brit 0" \ "$BRPRINTCONFIG -P $PRINTER -cont 0" \ "$BRPRINTCONFIG -P $PRINTER -red 0" \ "$BRPRINTCONFIG -P $PRINTER -green 0" \ "$BRPRINTCONFIG -P $PRINTER -blue 0" \ Z \ ) # putting descriptive settings (copied from PPD-section below) # in front so that they can be overidden by more detailed settings set brcommands = ( \ Resolution=Fast0 "-reso 300 -md PLAIN -doc GRAPH" \ Resolution=Normal0 "-reso 600 -md PLAIN -doc GRAPH" \ Resolution=EnhNormal0 "-reso 750 -md PLAIN -doc GRAPH" \ Resolution=Fine0 "-reso 1200 -md PLAIN -doc GRAPH" \ Resolution=Fine1 "-reso 1200x600 -md INKJET -doc GRAPH" \ Resolution=Photo1 "-reso 1200 -md INKJET -doc PHOTO" \ Resolution=Fine2 "-reso 1200 -md GLOSSY -doc GRAPH" \ Resolution=Photo2 "-reso 1200 -md GLOSSY -doc PHOTO" \ Resolution=Highest2 "-reso 1200x6000 -md GLOSSY -doc PHOTO" \ Resolution=Normal3 "-reso 600 -md TRANS" \ Resolution=EnhNormal3 "-reso 750 -md TRANS" \ Resolution=Fine3 "-reso 1200 -md TRANS" \ Resolution=Fast4 "-reso 300 -md SLOWDRY" \ Resolution=Normal4 "-reso 600 -md SLOWDRY" \ Resolution=EnhNormal4 "-reso 750 -md SLOWDRY" \ Resolution=Fine4 "-reso 1200 -md SLOWDRY" \ Media=PlainPaper "-md PLAIN" \ Media=InkjetPaper "-md INKJET" \ Media=Glossy "-md GLOSSY" \ Media=Transpare "-md TRANS" \ Media=TranspareMirror "-md TRANSMIR" \ Resolution=300 "-reso 300" \ Resolution=600 "-reso 600" \ Resolution=1200 "-reso 1200" \ Resolution=750 "-reso 750" \ Resolution=1200x600 "-reso 1200x600" \ Resolution=1200x2400 "-reso 1200x2400" \ Resolution=1200x6000 "-reso 1200x6000" \ BiDir=OFF "-bidir OFF" \ BiDir=ON "-bidir ON" \ Mirror=ON "-mirro ON" \ Mirror=OFF "-mirro OFF" \ PageSize=A4 "-pt A4" \ PageSize=A4_B "-pt A4_B" \ PageSize=Letter "-pt LT" \ PageSize=Letter_B "-pt LT_B" \ PageSize=Legal "-pt LGL" \ PageSize=Exective "-pt EXE" \ PageSize=B5 "-pt B5" \ PageSize=A5 "-pt A5" \ PageSize=A6 "-pt A6" \ PageSize=A6_B "-pt A6_B" \ PageSize=PostCard "-pt POSTC" \ PageSize=PostCard_B "-pt POSTC_B" \ PageSize=IndexCard "-pt INDEXC" \ PageSize=IndexCard_B "-pt INDEXC_B" \ PageSize=PhotoL "-pt PHOTOL" \ PageSize=PhotoL_B "-pt PHOTOL_B" \ PageSize=Photo2L "-pt PHOTO2L" \ PageSize=Photo2L_B "-pt PHOTO2L_B" \ PageSize=Hagaki "-pt HAGAKI" \ PageSize=Hagaki_B "-pt HAGAKI_B" \ PageSize=DblHagaki "-pt DBLHAGAKI" \ PageSize=C5 "-pt C5" \ PageSize=EnvC5 "-pt C5" \ PageSize=DL "-pt DL" \ PageSize=EnvDL "-pt DL" \ PageSize=Com-10 "-pt COM-10" \ PageSize=COM10 "-pt COM-10" \ PageSize=COM-10 "-pt COM-10" \ PageSize=Env10 "-pt COM-10" \ PageSize=EnvCOM10 "-pt COM-10" \ PageSize=Monarch "-pt MONARCH" \ PageSize=EnvMonarch "-pt MONARCH" \ PageSize=Youkei4 "-pt YOUKEI4" \ PaperThick=Regular "-thick REGULAR" \ PaperThick=Thick "-thick THICK" \ PaperSource=Tray1 "-feed TRAY1" \ PaperSource=Tray2 "-feed TRAY2" \ PaperSource=AUTO "-feed AUTO" \ MonoColor=Mono "-corm MONO" \ MonoColor=Color "-corm COLOR" \ Document=PHOTO "-doc PHOTO" \ Document=GRAPH "-doc GRAPH" \ Document=CUSTOM "-doc CUSTOM" \ ColorMatching=NATURAL "-cm NATURAL" \ ColorMatching=VIVID "-cm VIVID" \ ColorMatching=NONE "-cm NONE" \ HalfTonePattern=DIFFUSION "-ht DIFFUSION" \ HalfTonePattern=DITHER "-ht DITHER" \ ColorEnhancement=OFF "-ce OFF" \ ColorEnhancement=ON "-ce ON" \ Z Z) set brcommands2 = (\ Copies= "-copy " \ Brightness= "-brit " \ Contrast= "-cont " \ Red= "-red " \ Green= "-green " \ Blue= "-blue " \ Z Z) set StandardCUPSoptions = ( \ media=PlainPaper "-md PLAIN" \ media=InkjetPaper "-md INKJET" \ media=Glossy "-md GLOSSY" \ media=Transpare "-md TRANS" \ media=TranspareMirror "-md TRANSMIR" \ media=A4 "-pt A4" \ media=A4_B "-pt A4_B" \ media=Letter "-pt LT" \ media=Letter_B "-pt LT_B" \ media=Legal "-pt LGL" \ media=Exective "-pt EXE" \ media=B5 "-pt B5" \ media=A5 "-pt A5" \ media=A6 "-pt A6" \ media=A6_B "-pt A6_B" \ media=PostCard "-pt POSTC" \ media=PostCard_B "-pt POSTC_B" \ media=IndexCard "-pt INDEXC" \ media=IndexCard_B "-pt INDEXC_B" \ media=PhotoL "-pt PHOTOL" \ media=PhotoL_B "-pt PHOTOL_B" \ media=Photo2L "-pt PHOTO2L" \ media=Photo2L_B "-pt PHOTO2L_B" \ media=Hagaki "-pt HAGAKI" \ media=Hagaki_B "-pt HAGAKI_B" \ media=DblHagaki "-pt DBLHAGAKI" \ media=C5 "-pt C5" \ media=EnvC5 "-pt C5" \ media=DL "-pt DL" \ media=EnvDL "-pt DL" \ media=Com-10 "-pt COM-10" \ media=COM10 "-pt COM-10" \ media=COM-10 "-pt COM-10" \ media=Env10 "-pt COM-10" \ media=EnvCOM10 "-pt COM-10" \ media=Monarch "-pt MONARCH" \ media=EnvMonarch "-pt MONARCH" \ media=Youkei4 "-pt YOUKEI4" \ media=Regular "-thick REGULAR" \ media=Thick "-thick THICK" \ media=Tray1 "-feed TRAY1" \ media=Tray2 "-feed TRAY2" \ media=AUTO "-feed AUTO" \ "media=.*,PlainPaper" "-md PLAIN" \ "media=.*,InkjetPaper" "-md INKJET" \ "media=.*,Glossy" "-md GLOSSY" \ "media=.*,Transpare" "-md TRANS" \ "media=.*,TranspareMirror" "-md TRANSMIR" \ "media=.*,A4" "-pt A4" \ "media=.*,A4_B" "-pt A4_B" \ "media=.*,Letter" "-pt LT" \ "media=.*,Letter_B" "-pt LT_B" \ "media=.*,Legal" "-pt LGL" \ "media=.*,Exective" "-pt EXE" \ "media=.*,B5" "-pt B5" \ "media=.*,A5" "-pt A5" \ "media=.*,A6" "-pt A6" \ "media=.*,A6_B" "-pt A6_B" \ "media=.*,PostCard" "-pt POSTC" \ "media=.*,PostCard_B" "-pt POSTC_B" \ "media=.*,IndexCard" "-pt INDEXC" \ "media=.*,IndexCard_B" "-pt INDEXC_B" \ "media=.*,PhotoL" "-pt PHOTOL" \ "media=.*,PhotoL_B" "-pt PHOTOL_B" \ "media=.*,Photo2L" "-pt PHOTO2L" \ "media=.*,Photo2L_B" "-pt PHOTO2L_B" \ "media=.*,Hagaki" "-pt HAGAKI" \ "media=.*,Hagaki_B" "-pt HAGAKI_B" \ "media=.*,DblHagaki" "-pt DBLHAGAKI" \ "media=.*,C5" "-pt C5" \ "media=.*,EnvC5" "-pt C5" \ "media=.*,DL" "-pt DL" \ "media=.*,EnvDL" "-pt DL" \ "media=.*,Com-10" "-pt COM-10" \ "media=.*,COM10" "-pt COM-10" \ "media=.*,COM-10" "-pt COM-10" \ "media=.*,Env10" "-pt COM-10" \ "media=.*,EnvCOM10" "-pt COM-10" \ "media=.*,Monarch" "-pt MONARCH" \ "media=.*,EnvMonarch" "-pt MONARCH" \ "media=.*,Youkei4" "-pt YOUKEI4" \ "media=.*,Regular" "-thick REGULAR" \ "media=.*,Thick" "-thick THICK" \ "media=.*,Tray1" "-feed TRAY1" \ "media=.*,Tray2" "-feed TRAY2" \ "media=.*,AUTO" "-feed AUTO" \ Z Z) set PPDdefault = ( \ "__PPDLABEL__" "^\*DefaultBRMirror" \ "DefaultBRMirror" \ OFF "-mirro OFF" \ ON "-mirro ON" \ "__PPDLABEL__" "^\*DefaultPageSize" \ "DefaultPageSize" \ BrA4 "-pt A4" \ BrA4_B "-pt A4_B" \ BrLetter "-pt LT" \ BrLetter_B "-pt LT_B" \ BrLegal "-pt LGL" \ BrExecutive "-pt EXE" \ BrA5 "-pt A5" \ BrA6 "-pt A6" \ BrA6_B "-pt A6_B" \ BrB5 "-pt B5" \ BrB6 "-pt B6" \ BrC5 "-pt C5" \ BrDL "-pt DL" \ BrEnv10 "-pt COM10" \ "Env Monarch" "-pt MONARCH" \ BrJISB5 "-pt B5" \ BrPostC4x6 "-pt POSTC" \ BrPostC4x6_B "-pt POSTC_B" \ BrIndexC5x8 "-pt INDEXC" \ BrIndexC5x8_B "-pt INDEXC_B" \ BrPhotoL "-pt PHOTOL" \ BrPhotoL_B "-pt PHOTOL_B" \ BrPhoto2L "-pt PHOTO2L" \ BrPhoto2L_B "-pt PHOTO2L_B" \ BrHagaki "-pt HAGAKI" \ BrHagaki_B "-pt HAGAKI_B" \ BrDoubleHagaki "-pt DBLHAGAKI" \ BrC5 "-pt C5" \ BrDL "-pt DL" \ BrCom10 "-pt COM-10" \ BrMonarch "-pt MONARCH" \ BrYokei4 "-pt YOKEI4" \ "__PPDLABEL__" "^\*DefaultResolution" \ "DefaultResolution" \ Normal "-reso 300" \ Fine "-reso 600" \ S\.Fine "-reso 600" \ Photo "-reso 600" \ "__PPDLABEL__" "^\*DefaultBRColorMediaType" \ "DefaultBRColorMediaType" \ Plain "-md PLAIN" \ Inkjet "-md INKJET" \ Glossy "-md GLOSSY" \ Transparencies "-md TRANS" \ Transparencies.Mirror "-md TRANSMIR" \ "__PPDLABEL__" "^\*DefaultBRColorPaperThick" \ "DefaultBRColorPaperThick" \ Regular "-thick REGULAR" \ Thick "-thick THICK" \ "__PPDLABEL__" "^\*DefaultBRBiDir" \ "DefaultBRBiDir" \ OFF "-bidir OFF" \ ON "-bidir ON" \ "__PPDLABEL__" "^\*DefaultBRDocument" \ "DefaultBRDocument" \ Photo "-doc PHOTO" \ Graphics "-doc GRAPH" \ Custom "-doc CUSTOM" \ "__PPDLABEL__" "^\*DefaultBRColorMatching" \ "DefaultBRColorMatching" \ Natural "-cm NATURAL" \ Vivid "-cm VIVID" \ None "-cm NONE" \ "__PPDLABEL__" "^\*DefaultBRHalfTonePattern" \ "DefaultBRHalfTonePattern" \ Diffusion "-ht DIFFUSION" \ Dither "-ht DITHER" \ "__PPDLABEL__" "^\*DefaultBRColorEnhancement" \ "DefaultBRColorEnhancement" \ OFF "-ce OFF" \ ON "-ce ON" \ "__PPDLABEL__" "^\*DefaultInputSlot" \ "^DefaultInputSlot" \ AutoSelect "-feed AUTO" \ Tray1 "-feed TRAY1" \ Tray2 "-feed TRAY2" \ "__PPDLABEL__" "^\*DefaultBRInputSlot" \ "^DefaultBRInputSlot" \ AutoSelect "-feed AUTO" \ Tray1 "-feed TRAY1" \ Tray2 "-feed TRAY2" \ "__PPDLABEL__" "^\*DefaultBRMonoColor" \ "DefaultBRMonoColor" \ Color "-corm COLOR" \ Mono "-corm MONO" \ "__PPDLABEL__" "^\*DefaultResolution" \ "DefaultResolution" \ Fast0 "-reso 300 -md PLAIN -doc GRAPH" \ Normal0 "-reso 600 -md PLAIN -doc GRAPH" \ EnhNormal0 "-reso 750 -md PLAIN -doc GRAPH" \ Fine0 "-reso 1200 -md PLAIN -doc GRAPH" \ Fine1 "-reso 1200x600 -md INKJET -doc GRAPH" \ Photo1 "-reso 1200 -md INKJET -doc PHOTO" \ Fine2 "-reso 1200 -md GLOSSY -doc GRAPH" \ Photo2 "-reso 1200 -md GLOSSY -doc PHOTO" \ Highest2 "-reso 1200x6000 -md GLOSSY -doc PHOTO" \ Normal3 "-reso 600 -md TRANS" \ EnhNormal3 "-reso 750 -md TRANS" \ Fine3 "-reso 1200 -md TRANS" \ Fast4 "-reso 300 -md SLOWDRY" \ Normal4 "-reso 600 -md SLOWDRY" \ EnhNormal4 "-reso 750 -md SLOWDRY" \ Fine4 "-reso 1200 -md SLOWDRY" \ Z Z ) set PPDdefaultN = ( \ "^\*Default*BRBrightness" -brit=\ "^\*DefaultBRContrast" -cont=\ "^\*DefaultBRRed" -red=\ "^\*DefaultBRGreen" -green=\ "^\*DefaultBRBlue" -blue=\ Z ) set PPDdefaultNValues = ( \ 0 0 \ 2 +2 \ 1 +1 \ "\-2" -2 \ "\-1" -1 \ 20 +20 \ 19 +19 \ 18 +18 \ 17 +17 \ 16 +16 \ 15 +15 \ 14 +14 \ 13 +13 \ 12 +12 \ 11 +11 \ 10 +10 \ 9 +9 \ 8 +8 \ 7 +7 \ 6 +6 \ 5 +5 \ 4 +4 \ 3 +3 \ "\-20" -20 \ "\-19" -19 \ "\-18" -18 \ "\-17" -17 \ "\-16" -16 \ "\-15" -15 \ "\-14" -14 \ "\-13" -13 \ "\-12" -12 \ "\-11" -11 \ "\-10" -10 \ "\-9" -9 \ "\-8" -8 \ "\-7" -7 \ "\-6" -6 \ "\-5" -5 \ "\-4" -4 \ "\-3" -3 \ Z Z) if($LOGFILE != "/dev/null") then if($LOG_LATESTONLY == "1") then rm -f $LOGFILE date >$LOGFILE else if(-e $LOGFILE) then date >>$LOGFILE else date >$LOGFILE endif endif echo "arg0 = $0" >>$LOGFILE echo "arg1 = $1" >>$LOGFILE echo "arg2 = $2" >>$LOGFILE echo "arg3 = $3" >>$LOGFILE echo "arg4 = $4" >>$LOGFILE echo "arg5 = $5" >>$LOGFILE echo "arg6 = $6" >>$LOGFILE echo "PPD = $PPD" >>$LOGFILE endif if(!(-e /usr/Brother/lpd/filterDCP110C)) then echo "ERROR: /usr/Brother/lpd/filterDCP110C does not exist" >>$LOGFILE set errorcode=30 exit $errorcode endif set INPUT_TEMP_PS=`mktemp /tmp/br_input_ps.XXXXXX` if ($#argv >= 7) then cp $6 $INPUT_TEMP_PS else cat > $INPUT_TEMP_PS endif if(-e "/usr/bin/$BRPRINTCONFIG") then echo "-------set printer defaults-------" >>&"$LOGFILE" set i = 1 while("$printerdefaults[$i]" != "Z") $printerdefaults[$i] >>&"$LOGFILE" echo "$printerdefaults[$i]" >>&"$LOGFILE" @ i ++ end echo "-------set Postscript defaults-------" >>&"$LOGFILE" set i = 1 set Default=XXXXX set ppdlabel = YYYYY while("$PPDdefault[$i]" != "Z") if("$PPDdefault[$i]" == "__PPDLABEL__") then @ i ++ set ppdlabel = "$PPDdefault[$i]" set Default=`grep "$ppdlabel" "$PPD"` set Default=`echo "$Default" |sed s/" "//g |sed s/" "//g ` @ i ++ set ppdlabelref = "$PPDdefault[$i]" endif @ i ++ set Default = `echo "$Default" | tr -d "*"` while("$PPDdefault[$i]" != "Z" && "$PPDdefault[$i]" != "__PPDLABEL__" ) if(`echo "$Default" | grep "$ppdlabelref":"$PPDdefault[$i]"` != "") then @ i ++ echo "$BRPRINTCONFIG -P $PRINTER $PPDdefault[$i]" >>&"$LOGFILE" $BRPRINTCONFIG -P $PRINTER $PPDdefault[$i] >>&"$LOGFILE" else @ i ++ endif @ i ++ end end echo "-------set Postscript defaults [N]-------" >>&"$LOGFILE" set i = 1 set Default=XXXXX set ppdlabel = YYYYY while("$PPDdefaultN[$i]" != "Z") set ppdlabel = "$PPDdefaultN[$i]" set Default=`grep "$ppdlabel" "$PPD"` set ii = 1 @ i ++ if("$Default" != "") then set Default = `echo "$Default" | tr -d "*"` while("$PPDdefaultNValues[$ii]" != "Z") set Default2 = `echo "$Default" | grep "$PPDdefaultNValues[$ii]"` @ ii ++ if( "$Default2" != "") then set PPDdefaultLabel = `echo "$PPDdefaultN[$i]" | tr -d "="` echo "$BRPRINTCONFIG -P $PRINTER $PPDdefaultLabel $PPDdefaultNValues[$ii]" >>&"$LOGFILE" $BRPRINTCONFIG -P $PRINTER $PPDdefaultLabel $PPDdefaultNValues[$ii] >>&"$LOGFILE" endif @ ii ++ end endif @ i ++ end echo "-------set options-------" >>&"$LOGFILE" set INPUT_TEMP_LINE set INPUT_TEMP_OPTIONS=`mktemp /tmp/br_input.XXXXXX` echo $5 |tr " " '\n' > $INPUT_TEMP_OPTIONS set i = 1 while("$brcommands[$i]" != "Z") if("`grep -i $brcommands[$i] $INPUT_TEMP_OPTIONS`" != "") then @ i ++ $BRPRINTCONFIG -P $PRINTER $brcommands[$i] >>&"$LOGFILE" echo "$BRPRINTCONFIG -P $PRINTER $brcommands[$i]" >>&"$LOGFILE" @ i -- endif @ i += 2 end set i = 1 set ii = 2 while("$brcommands2[$i]" != "Z") set INPUT_TEMP_LINE=`grep -i $brcommands2[$i] $INPUT_TEMP_OPTIONS` if($INPUT_TEMP_LINE != "") then set option_tmp=`echo $INPUT_TEMP_LINE | sed s/"BR""$brcommands2[$i]"/"$brcommands2[$ii]"/` set command_and_arg="$BRPRINTCONFIG -P $PRINTER $option_tmp" echo $command_and_arg >>&"$LOGFILE" $command_and_arg >>&"$LOGFILE" endif @ i += 2 @ ii += 2 end echo "-------set CUPS standard options-------" >>&"$LOGFILE" set i = 1 while("$StandardCUPSoptions[$i]" != "Z") set INPUT_TEMP_LINE=`grep "$StandardCUPSoptions[$i]" $INPUT_TEMP_OPTIONS` if($INPUT_TEMP_LINE != "") then @ i ++ echo "$BRPRINTCONFIG -P $PRINTER $StandardCUPSoptions[$i]" >>&"$LOGFILE" $BRPRINTCONFIG -P $PRINTER $StandardCUPSoptions[$i] >>&"$LOGFILE" @ i -- endif @ i += 2 end rm -f $INPUT_TEMP_OPTIONS else echo "WARNING: /usr/bin/$BRPRINTCONFIG does not exist" >>$LOGFILE set errorcode=31 endif if($DEBUG < 10) then cat $INPUT_TEMP_PS | /usr/Brother/lpd/filterDCP110C if($LOGLEVEL > 2) then if($LOGFILE != "/dev/null") then echo "" >>$LOGFILE echo " ------PostScript Data-------" >>$LOGFILE cat $INPUT_TEMP_PS >>$LOGFILE endif endif endif rm -f $INPUT_TEMP_PS exit $errorcode