- 论坛徽章:
- 1
|
如果每个打印的文件都保留一个独立的文件,还有一个办法
参考http://wdb1.sco.com/kb/showta?taid=110966
#mkdev lp
Add Local
Name: scoprint(你的打印机名称)
Description: file printer
Model: dumb (哑模式!)
Device: /dev/tty2a (找一个没有配置打印机的串口,此例为COM2)
创建打印机scoprint的接口文件/var/spool/lp/admins/lp/interfaces/scoprint",
/var/spool/lp/admins/lp/interfaces/scoprint如果已经存在,将其换名备份一下,
重新建立一个新的文件scoprint(这个要和你的打印机名称一致),内容如下:
- #Set up some global variables.
- : ${SPOOLDIR:=/usr/spool/lp}
- : ${LOCALPATH:=${SPOOLDIR}/bin}
- #Set up the default filter.
- if [ -x "${LOCALPATH}/lp.cat" ]
- then
- LPCAT="${LOCALPATH}/lp.cat 0"
- else
- LPCAT="cat"
- fi
- #If we are not using a filter, use the default one.
- if [ -z "${FILTER}" ]
- then
- FILTER="${LPCAT}"
- fi
- if [ -x "${LOCALPATH}/drain.output" ]
- then
- DRAIN="${LOCALPATH}/drain.output 1"
- else
- DRAIN=
- fi
- nobanner="no"
- if [ -z "${BANNERS}" ]
- then
- nhead=1
- else
- nhead=${BANNERS}
- fi
- for i in $5
- do
- case "${i}" in
- nobanner )
- nobanner="yes"
- ;;
- esac
- done
- request=$1
- copies=$4
- saveargs="$*"
- shift; shift; shift; shift; shift
- files="$*"
- i=1
- while [ $i -le $copies ]
- do
- echo Print request ID S1 > /tmp/${request}
- echo Created `date` >> /tmp/${request}
- id >> /tmp/${request}
- echo "Arguments passed to interface :-" >> /tmp/${request}
- echo $saveargs >> /tmp/${request}
- env >> /tmp/${request}
- echo "Print data follows..." >> /tmp/${request}
- echo >> /tmp/${request}
- for file in $files
- do
- cat ${file} >> /tmp/${request}
- done
- i=`expr $i + 1`
- done
- exit 0
复制代码
修改属性:
# chown lp:lp /var/spool/lp/admins/lp/interfaces/scoprint
这样用lp -d scoprint printfiles就能在/tmp里面生成打印文件了
补充:如果不同的用户需要把文件生成到用户自己的目录里,需要把
while [ $i -le $copies ]
do
...
done之间的tmp替换为
- `grep "^$2:" /etc/passwd | line | cut -d: -f6`/lpout
复制代码
注意前后两个`均为!号左边的~按键,不是"下的单引号,
本例中指示打印输出为各个用户的lpout子目录下,当然lpout可换成自己需要的目录
注意不能用$HOME替换tmp,在lp脚本中$HOME并不是执行lp打印的用户名称 |
|