
Distribution)打印子系统,它是由一个作为服务器运行的行式打印守护程序(LPD)组成,而客户端命令如 lpr
是用于提交打印作业。这个协议后来被 IETF 标准化为 RFC 1179 —— 行式打印机守护进程协议。
System V 也有一个打印守护程序。它的功能与BSD 的 LPD 守护程序类似,但是它们的命令集不一样。你在后面会经常看到完成相同的任务使用不同选项的两个命令。例如,对于打印文件的命令,伯克利实现版本是 lpr,而 System V 实现版本是 lp。
随着打印机技术的进步,在一个页面上混合出现不同字体成为可能,并且可以将图片像文字一样打印。可变间距字体,以及更多先进的打印技术,比如间距和连字符,现在都已经标准化。出现了几种对基本的
lpd/lpr 方法等改进设计,比如 LPRng,下一代的 LPR,以及 CUPS。
许多可以打印图形的打印机,使用 Adobe PostScript 语言进行初始化。一个 PostScript
打印机有一个解释器引擎,它可以解释打印任务中的命令并从这些命令中生成最终的页面。PostScript
经常被用做原始文件(比如一个文本文件或者一个图像文件)和最终格式没有适合的 PostScript
功能的特定打印机之间的中间层。转换这些特定的打印任务,比如将一个 ASCII 文本文件或者一个 JPEG 图像转换为
PostScript,然后再使用过滤器转换 PostScript 到非 PostScript 打印机所需要的最终光栅格式。
现在的便携式文档格式Portable Document Format(PDF),它就是基于 PostScript 的,已经替换了传统的原始
PostScript。PDF 设计为与硬件和软件无关,它封装了要打印的页面的完整描述。你可以查看 以及打印 PDF 文件。
你可以使用 CUPS 的 lpstat 命令去检查队列,以了解打印系统。
具体使用方法,楼主可以百度《Linux就该这么学》,进入官网,搜索“打印机”就能找到相关的教程了。
方法:(1)正确安装和配置Samba服务器。
(2)将运行Windows9x/2000上的打印机设置为共享。
(3)在Linux系统的/etc/printcap中为网络打印机建立一个新的队列,如下:
smb: \
:sd=/var/spool/lpd/smb: \
:mx # 0: \
:sh: \
:lp=/dev/null: \
:af=/var/spool/lpd/smb/acct: \
:if=/var/spool/lpd/smb/filter:
将Samba软件包提供的smbprint拷贝到Samba安装目录/bin子目录里并设置成可执行模式。
(4)在/var/spool/lpd/smb/目录下,创建打印过滤器文件filter。
# ! /bin/sh
DEVICE=“打印机型号名称(如:LJET4)”
RESOLUTION=600*600
PAPERSIZE=“打印纸型号(如:A4)”
SENDEOF=
nenscript -TUS -ZB -p-|
if [" $ DEVICE"="PostScript"]then
cat - | /usr/local/samba/bin/smbprint –
else
gs -q -s DEVICE=$DEVICE \
-r $RESOLUTION \
-s PAPERSIZE=$PAPERSIZE \
-d NOPAUSE \
-d SAFER \
-s Outputfile=-- | /usr/local/samba/bin/smbprint –
fi
if ["$ SENDEOF"!=""]then
printf""
fi
exit 0
以上smbprint运行时需要一个.config的打印信息文件,这个文件在printcap定义的/var/spool/lpd/smb目录下建立,如下:
server=“打印服务器名称(如:SISKIN)”
service=“打印机型号名称(如:LJET4)”
password=“网络打印机共享名及口令”
(5)重新启动打印管理器
# lpc restart all
(6) 打印
% lpr –P smb 文件名
你可以反过来想,我给你找了篇文章,你看看。一 在Linux上使用Windows9x/2000上的打印机
Server Message Buffer(SMB)协议能够实现Windows9x/2000局域网上打印机共享,Linux也能使用SMB实现与Windows9x/2000等 *** 作系统上的打印机共享,其位于Samba软件包中(Samba软件包可以从提供免费的Linux网站上获得)。实现Linux上使用Windows9x/2000上的打印机,设置步骤如下:
(1)正确安装和配置Samba服务器。
(2)将运行Windows9x/2000上的打印机设置为共享。
(3)在Linux系统的/etc/printcap中为网络打印机建立一个新的队列,如下:
smb:
:sd=/var/spool/lpd/smb:
:mx # 0:
:sh:
:lp=/dev/null:
:af=/var/spool/lpd/smb/acct:
:if=/var/spool/lpd/smb/filter:
将Samba软件包提供的smbprint拷贝到Samba安装目录/bin子目录里并设置成可执行模式。
(4)在/var/spool/lpd/smb/目录下,创建打印过滤器文件filter。
# ! /bin/sh
DEVICE=“打印机型号名称(如:LJET4)”
RESOLUTION=600*600
PAPERSIZE=“打印纸型号(如:A4)”
SENDEOF=
nenscript -TUS -ZB -p-|
if [" $ DEVICE"="PostScript"]then
cat - | /usr/local/samba/bin/smbprint –
else
gs -q -s DEVICE=
-r
-s PAPERSIZE=
-d NOPAUSE
-d SAFER
-s Outputfile=-- | /usr/local/samba/bin/smbprint –
fi
if ["$ SENDEOF"!=""]then
printf""
fi
exit 0
以上smbprint运行时需要一个.config的打印信息文件,这个文件在printcap定义的/var/spool/lpd/smb目录下建立,如下:
server=“打印服务器名称(如:SISKIN)”
service=“打印机型号名称(如:LJET4)”
password=“网络打印机共享名及口令”
(5)重新启动打印管理器
# lpc restart all
(6) 打印
% lpr –P smb 文件名
需要注意的是:smbprint在第一次使用网络打印队列前,要保证/tmp下没有smb-print.log这个缺省日志文件,它在smbprint第一次运行时会自动创建。
二 在Windwos9x/2000上使用Linux上的打印机
在Windows9x/2000看来Linux上的共享打印机分为PCL和PostScript两种打印机,使用Linux中RedHat的printtool产生的打印机队列,打印过滤器会自动区分PCL文件和其它格式的文件,所以从外界看来是PCL打印机。而本例使用的简单打印过滤器产生的打印机队列,没有区分文本文件和PCL文件,必须使用PostScript打印机的驱动程序。设置步骤如下:
使用Linux上的Samba服务器将Linux上的打印机设置共享。
在Windows9x/2000中添加网络打印机,即Linux上的共享打印机。
安装相应型号打印机的PostScript网络打印机驱动程序。
至此,Windows9x/2000上的打印作业转换为PostScript文件,发送到Linux的网络打印机上输出。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)