日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

1 FreeBSD handbook中文版 11 打印 基本設(shè)置( 九 )


這個(gè)問題,你可以讓你的文字過濾程序送出FORM FEED 字符(或是其它需要的字符)給打印機(jī) 。
這個(gè)動(dòng)作讓打印機(jī)打出目前打印機(jī)緩存區(qū)里的資料 。同時(shí)也確定每個(gè)工作的最后一頁(yè)可以完
整的輸出,使得下個(gè)工作不會(huì)從前一個(gè)工作的最后一頁(yè)中間輸出 。
下面這個(gè)shell script 取代/usr/local/libexec/if-simple 。將工作送給打印機(jī)后,
會(huì)再送出一個(gè)form feed 字符:
#!/bin/sh
第18 頁(yè)FreeBSD 使用手冊(cè)
#
# if-simple - Simple text input filter for lpd
# Installed in /usr/local/libexec/if-simple
#
# Simply copies stdin to stdout. Ignores all filter arguments.
# Writes a form feed character (f) after printing job.
/bin/cat && printf “f” && exit 0
exit 2
打出了“階梯效應(yīng)” 。
你的結(jié)果可能是這個(gè)樣子:
!”#$%&’()* ,-./01234
“#$%&’()* ,-./012345
#$%&’()* ,-./0123456
這時(shí)你已經(jīng)成為因?yàn)閾Q行字符沖突而產(chǎn)生的階梯效應(yīng)受害者 。Unix 風(fēng)格的操作系統(tǒng)只
使用ASCII 碼10,line feed (LF) 作為換行字符 。MS-Dos、OS/2 以及其它的操作系統(tǒng)使用
兩個(gè)字符ASCII 碼10 以及ASCII 碼13 (稱做carriage return 或CR) 。很多打印機(jī)使用MS-DOS
的表示法來(lái)代表?yè)Q行字符 。
當(dāng)你用FreeBSD 打印時(shí),你的文件只用line feed 字符換行 。當(dāng)打印機(jī)看到一個(gè)line feed
字符時(shí),將紙卷了一行,仍然從同一個(gè)位置繼續(xù)往后打印 。這就是為什么要用carriage
return 字符的原因:將下一個(gè)字的打印位置移到紙張的最左邊 。
FreeBSD 希望你的打印機(jī)可以:
打印機(jī)收到CR 打印機(jī)打印CR
打印機(jī)收到LF 打印機(jī)打印CRLF
有一些方法可以達(dá)到這個(gè)目地:
1. 用打印機(jī)上的開關(guān)或控制面板設(shè)置這些字符的處理方式 。請(qǐng)查閱你的打印機(jī)手冊(cè)并做正
確的設(shè)置 。
注意: 如果你的計(jì)算機(jī)安裝了除了FreeBSD 外的操作系統(tǒng),你也許得常常重新
設(shè)置打印機(jī)處理CR 和LF 的設(shè)置 。因此,你可能會(huì)希望使用下面其中之一的方
第19 頁(yè)FreeBSD 使用手冊(cè)
法:
2. 讓FreeBSD 的串口驅(qū)動(dòng)程序自動(dòng)將LF 轉(zhuǎn)換成CR LF 。當(dāng)然,你的打印機(jī)只能在串行口
上 。如果要打開這個(gè)功能,只要在/etc/printcap 設(shè)置文件里為你的打印機(jī)用fs 關(guān)鍵詞設(shè)
置CRMOD 這個(gè)位即可 。
3. 送一個(gè)句柄給打印機(jī)告訴它暫時(shí)把LF 字符做額外的處理 。請(qǐng)參閱你的打印機(jī)手冊(cè)以了
解你的打印機(jī)是否支持此功能 。如果你找到適用的句柄,修改你的文字過濾程序先送出這些
句柄,再送出要打印的工作 。
下面這個(gè)文字過濾程序的例子是使用Hewlett-Packard PCL 句柄 。先讓打印機(jī)將LF 視
為L(zhǎng)F 和CR 處理,再送出工作 。最后,再送出將整頁(yè)送出的句柄 。這個(gè)過濾程序應(yīng)該可以應(yīng)
付大部分Hewlett-Packard 的打印機(jī) 。
#!/bin/sh
#
# hpif - Simple text input filter for lpd for HP-PCL based printers
# Installed in /usr/local/libexec/hpif
#
# Simply copies stdin to stdout. Ignores all filter arguments.
# Tells printer to treat LF as CR LF. Ejects the page when done.
printf “33&k2G” && cat && printf “33&l0H” && exit 0
exit 2
而下面這個(gè)/etc/printcap 的例子是設(shè)置一臺(tái)叫做orchid 計(jì)算機(jī) 。它在第一個(gè)并口連
接了一臺(tái)叫做teak 的Hewlett-Packard LaserJet 3Si 打印機(jī) 。同時(shí),它使用了上述的script
作為它的文字過濾程序:
#
# /etc/printcap for host orchid
#
teak|hp|laserjet|Hewlett Packard LaserJet 3Si:
:lp=/dev/lpt0:sh:sd=/var/spool/lpd/teak:mx#0:
:if=/usr/local/libexec/hpif:
第20 頁(yè)每一行都重迭在一起
打印機(jī)從不換行,把每一行都印在同一行上 。這個(gè)問題和上述的階梯效應(yīng)“相反” 。而
且也較罕見 。FreeBSD 用來(lái)?yè)Q行的LF 字符被當(dāng)成CR 字符使得打印機(jī)一直回到紙張的最左邊

推薦閱讀