foo2lava-wrapper.in

来自「Linux下的无线网卡通用驱动程序」· IN 代码 · 共 697 行 · 第 1/2 页

IN
697
字号
##	Figure out the paper dimensions in pixels/inch, and set the#	default clipping region.  Unfortunately, this is a trouble#	area for ZjStream printers.  Various versions of ZjS print#	engines react differently when asked to print into their#	unprintable regions.#set_clipping() {    ulx=$1; uly=$2    lrx=$3; lry=$4    # Set clipping region if it isn't already set    if [ "$CLIP_UL" = "" ]; then	case "$RES" in	600x600)	ulx=`expr $ulx / 2`;;	2400x600)	ulx=`expr $ulx \* 2`;;	esac	CLIP_UL="-u ${ulx}x${uly}"    fi    if [ "$CLIP_LR" = "" ]; then	case "$RES" in	600x600)	lrx=`expr $lrx / 2`;;	2400x600)	lrx=`expr $lrx \* 2`;;	esac	CLIP_LR="-l ${lrx}x${lry}"    fi}case "$PAPER" inCustom*)		#%%BeginFeature: *CustomPageSize True		#216		#360		#0		#0		#0		#pop pop pop pop pop		TMPFILE=/tmp/cus$$		cat >$TMPFILE		exec <$TMPFILE		XDIM=`head -n 1000 $TMPFILE | sed -n '/CustomPageSize/{n;p;}'`		case "$XDIM" in		""|0*)		    rm -f $TMPFILE		    error "Custom page size XDIM != 1-99999"		    ;;		esac		xmm=`dc -e "$XDIM 25.4 * 36 + 72/p"`		XDIM=`dc -e "$XDIM 1200* 72/p"`		YDIM=`head -n 1000 $TMPFILE | sed -n '/CustomPageSize/{n;n;p;}'`		case "$YDIM" in		""|0*)		    rm -f $TMPFILE		    error "Custom page size YDIM != 1-99999"		    ;;		esac		ymm=`dc -e "$YDIM 25.4 * 36 + 72/p"`		YDIM=`dc -e "$YDIM 600* 72/p"`		PAPER=101;        paper=letter;		MEDIA=20                set_clipping 2 100     2 100		if [ $MODEL = 1 ]; then PAPER=custom_size_${xmm}x${ymm}mm; fi		;;1|executive)	PAPER=1;	paper=executive; XDIM="8700";  YDIM="6300"		set_clipping 206 110	206 110		if [ $MODEL = 1 ]; then PAPER=na_executive_7.25x10.5in; fi		;;2|letter)	PAPER=2;	paper=letter;    XDIM="10200"; YDIM="6600"		set_clipping 204 100	204 100		if [ $MODEL = 1 ]; then PAPER=na_letter_8.5x11in; fi		;;3|legal)	PAPER=3;	paper=legal;     XDIM="10200"; YDIM="8400"		set_clipping 204 104	204 104		if [ $MODEL = 1 ]; then PAPER=na_legal_8.5x14in; fi		;;25|a5|A5)	PAPER=25;	paper=a5;        XDIM="6992";  YDIM="4960"		set_clipping 216 112	216 112		if [ $MODEL = 1 ]; then PAPER=iso_a5_148x210mm; fi		;;26|a4|A4)	PAPER=26;	paper=a4;        XDIM="9920";  YDIM="7016"		set_clipping 208 100	208 100		if [ $MODEL = 1 ]; then PAPER=iso_a4_210x297mm; fi		;;45|b5jis|B5jis)	PAPER=45;	paper=b5;        XDIM="8598";  YDIM="6070"		set_clipping 204 107	202 107		if [ $MODEL = 1 ]; then PAPER=jis_b5_182x257mm; fi		;;65|b5iso|B5iso)	PAPER=65;	paper=b5;        XDIM="8314";  YDIM="5906"		set_clipping 206 105	204 105		;;80|envMonarch)	PAPER=80;	paper=envMonarch;XDIM="4650";  YDIM="4500"		set_clipping 214 106	212 106		if [ $MODEL = 1 ]; then PAPER=na_monarch_3.875x7.5in; fi		;;81|"env#10")	PAPER=81;	paper=env10;     XDIM="4950";  YDIM="5700"		set_clipping 204 114	202 114		if [ $MODEL = 1 ]; then PAPER=na_number-10_4.125x9.5in; fi		;;90|envDL)	PAPER=90;	paper=envDL;     XDIM="5200";  YDIM="5200"		set_clipping 216 104	216 104		if [ $MODEL = 1 ]; then PAPER=iso_dl_110x220mm; fi		;;91|envC5)	PAPER=91;	paper=envC5;     XDIM="7650";  YDIM="5408"		set_clipping 210 112	208 112		if [ $MODEL = 1 ]; then PAPER=iso_c5_162x229mm; fi		;;92|envC6)	PAPER=92;	paper=envC6;     XDIM="5386";  YDIM="3826"		set_clipping 214 105	212 105		if [ $MODEL = 1 ]; then PAPER=iso_c6_114x162mm; fi		;;835|photo4x6)	PAPER=835;	paper=photo4x6;  XDIM="4800";  YDIM="3600"		set_clipping 224 104	224 104		;;837|photo10x15)	PAPER=837;	paper=photo10x15; XDIM="4818";  YDIM="3590"		# Actually, 102x152		set_clipping 201 115	201 115		;;*)		error "Unimplemented paper code $PAPER";;esac# e.g. /usr/share/ghostscript/7.07/lib/gs_statd.psPAPERSIZE="-sPAPERSIZE=$paper";case "$RES" in600x600)	XDIM=`expr $XDIM / 2`;;1200x600)	;;2400x600)	XDIM=`expr $XDIM \* 2`;;esacDIM="${XDIM}x${YDIM}"## Filter thru psnup if N-up printing has been requested#case $NUP in[234689]|1[024568])	PREFILTER="nup";;*)			PREFILTER=cat;;esac##	Overload -G.  If the file name ends with ".icm" or ".ICM"#	then convert the ICC color profile to a Postscript CRD,#	then prepend it to the users job.  Select the intent#	using the -I option.#create_crd() {    #    # Create a Postscript CRD    #    ICC2PS=$PREFIX/bin/foo2zjs-icc2ps    if [ -x $ICC2PS ]; then        case "$GAMMAFILE" in        none.icm | */none.icm)            ;;        *)            $ICC2PS -o $GAMMAFILE -t$INTENT > $ICCTMP.crd.ps 2>$ICCTMP.log \                || error "Problem converting .ICM file to Postscript"            ;;        esac        cat > $ICCTMP.usecie.ps <<-EOF                %!PS-Adobe-3.0                <</UseCIEColor true>>setpagedevice	EOF        if [ "$QUALITY" = wts ]; then            cat >> $ICCTMP.usecie.ps <<-EOF                << /UseWTS true >> setuserparams                <<                    /AccurateScreens true                    /HalftoneType 1                    /HalftoneName (Round Dot Screen) cvn                    /SpotFunction { 180 mul cos exch 180 mul cos add 2 div}                    /Frequency 137                    /Angle 37                >> sethalftone		EOF        fi        cat > $ICCTMP.selcrd.ps <<-EOF                /Current /ColorRendering findresource setcolorrendering	EOF        case "$GAMMAFILE" in        none.icm | */none.icm) GAMMAFILE="$ICCTMP.usecie.ps";;        *)      GAMMAFILE="$ICCTMP.usecie.ps $ICCTMP.crd.ps $ICCTMP.selcrd.ps";;        esac    else        GAMMFILE=    fi}if [ $DEBUG -gt 0 ]; then    ICCTMP=/tmp/iccelse    ICCTMP=/tmp/icc$$fiif [ "" = "$COLOR" ]; then    COLORMODE=    GAMMAFILE=else    case "$COLORMODE" in    default)	COLORMODE=$DEFAULTCOLORMODE;;    esacfiCRDBASE="$PREFIX/share/foo2zjs/crd"case "$RES" in    600x600)	SCREEN=screen1200.ps;;    1200x600)	SCREEN=screen1200.ps;;    2400x600)	SCREEN=screen2400.ps;;esaccase "$COLORMODE" in0|"")    # Monochrome    ;;10|icm)    # Use old ICM method    AIB=-A    BC=-B    case "$GAMMAFILE" in    none.icm | */none.icm)        create_crd        ;;    *.icm|*.ICM|*.icc|*.ICC)	#	# Its really an .ICM file, not a gamma file.	#	# The file can be a full path name, or the name of a file in $SHARE/icm/	#	if [ -r "$GAMMAFILE" ]; then	    create_crd	elif [ -r "$SHARE/icm/$GAMMAFILE" ]; then	    GAMMAFILE="$SHARE/icm/$GAMMAFILE"	    create_crd	else	    GAMMAFILE=	fi	;;    esac    ;;1|photo)    # Photo    GAMMAFILE="$CRDBASE/prolog.ps"    GAMMAFILE="$GAMMAFILE $CRDBASE/2300w-1200@150-l250-kx,ucr125,75-per.crd"    GAMMAFILE="$GAMMAFILE $CRDBASE/$SCREEN"    ;;2|graphics)    # Photo and Text    GAMMAFILE="$CRDBASE/prolog.ps"    #GAMMAFILE="$GAMMAFILE $CRDBASE/2300w-1200@150-l250-kx,ucr100,75-per.crd"    GAMMAFILE="$GAMMAFILE $CRDBASE/kh.crd"    GAMMAFILE="$GAMMAFILE $CRDBASE/$SCREEN"    ;;3|text)    # Graphic and Text    GAMMAFILE="$CRDBASE/prolog.ps"    #GAMMAFILE="$GAMMAFILE $CRDBASE/2300w-1200@150-l250-kx,ucr100,50-per.crd"    GAMMAFILE="$GAMMAFILE $CRDBASE/kx.crd"    GAMMAFILE="$GAMMAFILE $CRDBASE/$SCREEN"    ;;4|tonersave)    # Reduced toner    GAMMAFILE="$CRDBASE/prolog.ps"    GAMMAFILE="$GAMMAFILE $CRDBASE/2300w-1200@150-l250-kx,ucr100,0-per.crd"    GAMMAFILE="$GAMMAFILE $CRDBASE/$SCREEN"    ;;*.crd)    GAMMAFILE="$CRDBASE/prolog.ps"    if [ -f $COLORMODE ]; then	GAMMAFILE="$GAMMAFILE $COLORMODE"    elif [ -f $CRDBASE/$COLORMODE ]; then	GAMMAFILE="$GAMMAFILE $CRDBASE/$COLORMODE"    else	error "Can't find CRD '$COLORMODE' in . or in $CRDBASE"    fi    GAMMAFILE="$GAMMAFILE $CRDBASE/$SCREEN"    ;;*)    error "Unknown color method '$COLORMODE'"    ;;esacif [ "" != "$COLOR" ]; then    if [ "" = "$AIB" -a "" = "$BC" ]; then	# Faster, but can't handle AllIsBlack or BlackClears	: #GSDEV=-sDEVICE=pksmraw    else	# Can't handle different size pages	: #GSDEV=-sDEVICE=bitcmyk    fifi##	Figure out USERNAME#if [ "$LPUSER" != "" ]; then    USER="$LPUSER@$LPHOST"else    USER=""fi##	Main Program, just cobble together the pipeline and run it##	The malarky with file descriptors 1 and 3 is to avoid a bug in#	(some versions?) of Ghostscript where Postscript's stdout gets#	intermingled with the printer drivers output, resulting in#	corrupted image data.#GS="$GSBIN -q -dBATCH -dSAFER -dQUIET -dNOPAUSE"sed 's#^[^/]*cupsPSLevel2#false#' | \$PREFILTER \| ($GS $PAPERSIZE -g$DIM -r$RES $GSDEV $GSOPTS \    -sOutputFile="|cat 1>&3" $GAMMAFILE - >/dev/null) 3>&1 \| foo2lava -r$RES -g$DIM -p$PAPER -m$MEDIA -n$COPIES -d$DUPLEX -s$SOURCE \	    -z$MODEL $COLOR $CLIP_UL $CLIP_LR $CLIP_LOG $SAVETONER \	    -J "$LPJOB" -U "$USER" \	    $BC $AIB $COLOR2MONO $NOPLANES $EXTRAPAD -D$DEBUG##	Log the command line, for debugging and problem reports#if [ -x /usr/bin/logger ]; then    logger -t "$BASENAME" -p lpr.info -- \	"$GSBIN $PAPERSIZE -g$DIM -r$RES $GSDEV $GSOPTS $GAMMAFILE"    logger -t "$BASENAME" -p lpr.info -- \	"foo2lava -r$RES -g$DIM -p$PAPER -m$MEDIA \-n$COPIES -d$DUPLEX -s$SOURCE -z$MODEL $COLOR $CLIP_UL $CLIP_LR $CLIP_LOG \$SAVETONER $BC $AIB $COLOR2MONO $NOPLANES $EXTRAPAD"fi##	Remove cruft#if [ $DEBUG -eq 0 ]; then    for i in crd.ps log usecie.ps selcrd.ps    do	file="$ICCTMP.$i"	[ -f $file ] && rm -f $file    done    [ -f "$TMPFILE" ] && rm -f $TMPFILEfiexit 0

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?