免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1820 | 回复: 2
打印 上一主题 下一主题

[SCO UNIX] 配置一个文件打印机 [复制链接]

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-01-13 09:45 |只看该作者 |倒序浏览
1 建立一个空文件,比如/fileprinter
# touch /fileprinter
# chmod 664 /fileprinter
# chown lp:lp /fileprinter
2 创建文件打印机
# mkdev lp
Printer->Add Local
     Name: fileprt
     Model: standard
     Device: /fileprinter
3 测试一下
# lp -d fileprt /etc/hosts
4 看一下效果
# more /fileprinter
5 每次打印的内容自动追加,如果不想要以前的内容,可以清空
# > /fileprinter
呵呵,小技巧一个
原文
http://wdb1.sco.com/kb/showta?ta ... 2352815&pgnum=1

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
2 [报告]
发表于 2006-01-17 11:36 |只看该作者
如果每个打印的文件都保留一个独立的文件,还有一个办法
参考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(这个要和你的打印机名称一致),内容如下:

  1. #Set up some global variables.
  2. : ${SPOOLDIR:=/usr/spool/lp}
  3. : ${LOCALPATH:=${SPOOLDIR}/bin}

  4. #Set up the default filter.
  5. if [  -x "${LOCALPATH}/lp.cat" ]
  6. then
  7.         LPCAT="${LOCALPATH}/lp.cat 0"
  8. else
  9.         LPCAT="cat"
  10. fi

  11. #If we are not using a filter, use the default one.
  12. if [ -z "${FILTER}" ]
  13. then
  14.         FILTER="${LPCAT}"
  15. fi

  16. if [ -x "${LOCALPATH}/drain.output" ]
  17. then
  18.         DRAIN="${LOCALPATH}/drain.output 1"
  19. else
  20.         DRAIN=
  21. fi

  22. nobanner="no"

  23. if [ -z "${BANNERS}" ]
  24. then
  25.         nhead=1
  26. else
  27.         nhead=${BANNERS}
  28. fi

  29. for i in $5
  30. do
  31.         case "${i}" in

  32.         nobanner )
  33.                 nobanner="yes"
  34.                 ;;
  35.         esac
  36. done

  37. request=$1
  38. copies=$4
  39. saveargs="$*"

  40. shift; shift; shift; shift; shift
  41. files="$*"
  42. i=1
  43. while [ $i -le $copies ]
  44. do
  45.         echo Print request ID S1 > /tmp/${request}
  46.         echo Created `date` >> /tmp/${request}
  47.         id >> /tmp/${request}
  48.         echo "Arguments passed to interface :-" >> /tmp/${request}
  49.         echo $saveargs >> /tmp/${request}
  50.         env >> /tmp/${request}
  51.         echo "Print data follows..." >> /tmp/${request}
  52.         echo >> /tmp/${request}

  53.         for file in $files
  54.         do
  55.                 cat ${file} >> /tmp/${request}
  56.         done
  57.         i=`expr $i + 1`
  58. done

  59. exit 0
复制代码

修改属性:
# chown lp:lp  /var/spool/lp/admins/lp/interfaces/scoprint

这样用lp -d scoprint printfiles就能在/tmp里面生成打印文件了
补充:如果不同的用户需要把文件生成到用户自己的目录里,需要把
while [ $i -le $copies ]
do
...
done之间的tmp替换为

  1. `grep "^$2:" /etc/passwd | line | cut -d: -f6`/lpout
复制代码

注意前后两个`均为!号左边的~按键,不是"下的单引号,
本例中指示打印输出为各个用户的lpout子目录下,当然lpout可换成自己需要的目录
注意不能用$HOME替换tmp,在lp脚本中$HOME并不是执行lp打印的用户名称

论坛徽章:
0
3 [报告]
发表于 2006-01-17 14:42 |只看该作者
收藏先,以后有用
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP