¡¡¡¡ÔÚʹÓà lptest(1) ½øÐмòµ¥µÄ²âÊÔÖ®ºó£¬ Äú¿ÉÄܵõ½ÁËÏÂÃæµÄ½á¹û£¬ ¶ø²»ÊÇÕýÈ·µÄ½á¹û£º
´òÓ¡»ú½øÐÐÁË´òÓ¡£¬ µ«ÔÚÕâ֮ǰËü´ôÁËÒ»¶Î¶øÇÒʲô¶¼Ã»×ö¡£ ÊÂʵÉÏ£¬ Äú¿ÉÄÜÐèÒª°´Ò»Ï´òÓ¡»úÉ쵀 ´òÓ¡Ê£Óà »òÕß ËÍÖ½ °´Å¥À´Èýá¹û³öÏÖ¡£
Èç¹ûÕâÊÇÎÊÌâËùÔÚ£¬ ´òÓ¡»ú¿ÉÄÜÔڵȴý£¬ ¿´¿´ÔÚ´òӡ֮ǰ£¬ ÄúµÄÈÎÎñÊÇ·ñ»¹Óиü¶àµÄÊý¾Ý¡£ ÒªÐÞÕýÕâ¸öÎÊÌ⣬ Äú¿ÉÒÔÈÃÎı¾¹ýÂËÆ÷·¢ËÍÒ»¸öËÍÖ½×Ö·û (»òÕ߯äËûÐèÒªµÄ) µ½´òÓ¡»ú¡£ Õâͨ³£×ã¹»ÈôòÓ¡»úÁ¢¼´´òÓ¡³öÄÚ²¿»º´æÄÚÊ£ÓàµÄÎı¾¡£ ËüͬÑù¿ÉÒÔÓÃÀ´È·±£Ã¿¸öÈÎÎñµÄ½áβ¶¼Õ¼ÓÃÒ»ÕûÕÅÖ½£¬ ÕâÑùÏÂÒ»¸öÈÎÎñ²Å²»»áÔÚǰһ¸öÈÎÎñ×îºóÒ»ÕÅÖ½µÄÖм俪ʼ¡£
½ÓÏÂÀ´µÄ shell ½Å±¾ /usr/local/libexec/if-simple µÄ½Å±¾´òÓ¡ÁËÒ»¸öËÍÖ½·ûÔÚËü·¢ËÍÈÎÎñµ½´òÓ¡»úÖ®ºó£º
#!/bin/sh # # 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
Äú¿ÉÄÜÔÚÖ½Éϵõ½ÏÂÃæÕâЩ£º
!"#$%&'()*+,-./01234 "#$%&'()*+,-./012345 #$%&'()*+,-./0123456
ÄúÒ²³ÉΪÁË Â¥ÌÝЧ¹û µÄÊܺ¦Õߣ¬ ÕâÊÇÓɶÔÐÂÐеıêÖ¾×Ö·ûµÄ½âÊͲ»Ò»ÖÂÔì³ÉµÄ¡£ UNIX® ·ç¸ñµÄ²Ù×÷ϵͳʹÓÃÒ»¸öµ¥¸ö×Ö·û£º ASCII Âë 10£¬ ¼´»»ÐÐ (LF)¡£ MS-DOS®£¬ OS/2®£¬ ºÍÆäËûµÄϵͳʹÓÃÒ»¶Ô¶ù×Ö·û£¬ ASCII Âë 10 ºÍ ASCII Âë 13 (»Ø³µ CR)¡£ Ðí¶à´òÓ¡»úʹÓà MS-DOS µÄϰ¹ßÀ´´ú±íÐÂÐС£
µ±ÄúÔÚ FreeBSD ÉÏ´òӡʱ£¬ ÄúµÄÎı¾½öÓÃÁË»»ÐÐ×Ö·û¡£ ´òÓ¡»ú£¬ ´òÓ¡»ú¿´µ½»»ÐÐ×Ö·ûºó£¬ ×ßÒ»ÐÐÖ½£¬ µ«»¹¹â±êλÖû¹ÊÇÔÚÕâÕÅÖ½ÉÏÒª´òÓ¡µÄÏÂÒ»¸ö×Ö·û´¦¡£ Õâ¾ÍÊǻسµµÄ×÷Ó㺠½«ÏÂÒ»¸öÒª´òÓ¡µÄ×Ö·ûµÄλÖÃÒÆµ½Ö½ÕŵÄ×ó±ßÔµ¡£
ÕâÀïÊÇ FreeBSD ÏëÒª´òÓ¡»ú×öµÄ£º
ÏÂÃæÓм¸ÖÖÍê³ÉÕâ¸öµÄ°ì·¨£º
ʹÓôòÓ¡»úµÄÅäÖÿª¹Ø»òÕß¿ØÖÆÃæ°åÀ´¸ü¸ÄËü¶ÔÕâЩ×Ö·ûµÄ½âÊÍ¡£ ²é¿´´òÓ¡»úµÄÊÖ²áÀ´ÕÒµ½ÔõÑù¸ü¸Ä¡£
×¢Òâ: Èç¹ûÄúÒýµ¼ÄúµÄϵͳµ½ÆäËû³ýÁË FreeBSD Ö®ÍâµÄ²Ù×÷ϵͳ£¬ Äú¿ÉÄܲ»µÃ²» ÖØÐÂÅäÖà ´òÓ¡»úʹÓà Õâ¸ö²Ù×÷ϵͳ¶Ô CR ºÍ LF ×Ö·ûµÄ½âÊÍ¡£ Äú¿ÉÄܸüϲ»¶ÏÂÃæÕâÁíÒ»ÖÖ½â¾ö·½°¸¡£
Èà FreeBSD µÄ´®¿ÚÇý¶¯×Ô¶¯×ª»» LF µ½ CR+LF¡£ µ±È»£¬ Õâ ½ö½ö ¹¤×÷ÔÚ´®¿Ú´òÓ¡»úÉÏ¡£ Òª¿ªÆôÕâ¸ö¹¦ÄÜ£¬ ¶¨Òå ms# ±äÁ¿²¢ ÉèÖà onlcr ģʽÔÚ /etc/printcap ÎļþÖÐÏàÓ¦´òÓ¡»ú´¦¡£
·¢ËÍÒ»¸ö תÒåÂë µ½´òÓ¡»úÀ´ÈÃËüÁÙʱ¶Ô LF ×Ö·û×ö²»Í¬µÄ´¦Àí¡£ ²Î¿¼ÄúµÄ´òÓ¡»úÊÖ²áÀ´Á˽âÄúµÄ´òÓ¡»úÖ§³ÖÄÄЩתÒåÂë¡£ µ±ÄúÕÒµ½ºÏÊʵÄתÒåÂ룬 ÐÞ¸ÄÎı¾¹ýÂËÆ÷ÈÃÆäÏÈ·¢ËÍÕâ¸öתÒåÂ룬 È»ºóÔÙ·¢ËÍ´òÓ¡ÈÎÎñ¡£
ÕâÀïÊÇÒ»¸öΪ¶®µÃ Hewlett-Packard PCL תÒåÂëµÄ´òÓ¡»ú±àдµÄÎı¾¹ýÂËÆ÷¡£ Õâ¸ö¹ýÂËÆ÷ʹµÃ´òÓ¡»ú½« LF ×÷Ϊһ¸ö LF ºÍÒ»¸ö CR À´¶Ô´ý£» È»ºóËü·¢ËÍÈÎÎñ£» ×îºó·¢ËÍÒ»¸öËÍÖ½·ûµ¯³öÈÎÎñµÄ×îºóÒ»ÕÅÖ½¡£ ËüÓ¦¸Ã¿ÉÒÔÔÚ¼¸ºõËùÓÐ Hewlett Packard ´òÓ¡»úÉϹ¤×÷¡£
#!/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 "\033&k2G" && cat && printf "\033&l0H" && exit 0 exit 2
ÏÂÃæÊÇÒ»¸ö /etc/printcap ÎļþµÄÀý×ÓÔÚ½Ð×ö orchid µÄÖ÷»úÉÏ¡£ ËüÖ»ÓÐһ̨´òÓ¡»úÁ¬½ÓÔÚµÚÒ»¸ö²¢¿ÚÉÏ£¬ һ̨ Hewlett Packard LaserJet 3Si Ãû×Ö½Ð×ö teak¡£ ËüʹÓÃÉÏÃæÄǶνű¾×÷ΪÎı¾¹ýÂËÆ÷£º
# # /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:
´òÓ¡»ú´ÓÀ´²»½øÖ½»»ÐС£ ËùÓеÄÎı¾¶¼´òÓ¡ÔÚÍ·Ò»ÐÐÎı¾µÄÉÏÃæ¡£
Õâ¸öÎÊÌâÊÇ ¡°Ïà·´¡± ÓÚÂ¥ÌÝЧ¹û£¬ ÏñÉÏÃæÃèÊöµÄÄÇÑù£¬ ²¢ÇÒ¸üÉÙ¼û¡£ һЩµØ·½£¬ LF Õâ¸ö FreeBSD ÓÃÀ´½áÊøÒ»ÐеÄ×Ö·û±»×÷Ϊ CR Õâ¸ö½«´òӡλÖ÷µ»Øµ½Ö½µÄ×ó±ßµÄ×Ö·û¶Ô´ý¡£ ¶øÃ»ÓÐÏòÏÂ×ßÖ½Ò»ÐС£
ʹÓôòÓ¡»úµÄÅäÖÿª¹Ø»òÕß¿ØÖÆÃæ°åÀ´Ç¿ÖÆ¶Ô LF ºÍ CR ½øÐÐÏÂÃæµÄת»»£º
µ±´òӡʱ£¬ ÿÐÐÀï´òÓ¡»ú¶¼¶ªµôһЩ×Ö·ûûÓдò¡£ Õâ¸öÎÊÌâ¿ÉÄÜËæ×Å´òÓ¡µÄ½øÐÐÔ½·¢ÑÏÖØ£¬ ¶ªµôÔ½À´Ô½¶àµÄ×Ö·û¡£
Õâ¸öÎÊÌâÊÇÓÉ´òÓ¡»ú¸ú²»ÉϼÆËã»úͨ¹ý´®¿Ú·¢ËÍÊý¾ÝµÄËÙ¶ÈÔì³ÉµÄ (Õâ¸öÎÊÌâÓ¦¸Ã²»»á·¢ÉúÔÚ²¢¿Ú´òÓ¡»úÉÏ)¡£ ÓÐÁ½ÖÖ·½·¨Äܿ˷þÕâ¸öÎÊÌ⣺
Èç¹û´òÓ¡»úÖ§³Ö XON/XOFF Á÷Á¿¿ØÖÆ£¬ ÄǾÍÈà FreeBSD ʹÓÃËü£¬ ͨ¹ý¼ÓÈë ixon ģʽÔÚ ms# ±äÁ¿Àï¡£
Èç¹û´òÓ¡»úÖ§³ÖÇëÇó/Çå³ýÓ²¼þÎÕÊÖÐźŠ£¨Í¨³£Ê± RTS/CTS£©£¬ Ö¸¶¨ crtscts ģʽÔÚ ms# ±äÁ¿Àï¡£ ²¢ÇÒҪȷ¶¨Á¬½Ó´òÓ¡»úºÍ¼ÆËã»úµÄÏßÊÇÖ§³ÖÓ²¼þÁ÷Á¿¿ØÖƵġ£
´òÓ¡»ú´òÓ¡³öµÄ¶«Î÷¿´ÆðÀ´ÊÇÒ»Ð©Ëæ»úµÄ×Ö·û£¬ ¶ø²»ÊÇÏëÒª´òÓ¡µÄ¶«Î÷¡£
Õâͨ³£Òâζ×ÅÁíÒ»ÖÖ´®¿Ú´òÓ¡»úͨѶ²ÎÊýÉèÖò»ÕýÈ·µÄ´íÎó¡£ ¸´²é br ±äÁ¿ÖÐÉ趨µÄ²¨ÌØ£¬ ºÍ ms# ÖеÄУÑéÉèÖã» È·¶¨´òÓ¡»úÒ²ÔÚʹÓÃºÍ /etc/printcap ÎļþÖÐÏàͬµÄÉèÖá£
Èç¹ûûÓз´Ó¦£¬ ÎÊÌâ¾Í¿ÉÄܳöÔÚ FreeBSD ¶ø²»ÊÇÓ²¼þÉÏÁË¡£ Ôö¼ÓÈÕÖ¾Îļþ (lf) ±äÁ¿µ½ /etc/printcap ÎļþÀï³öÏÖÎÊÌâµÄ´òÓ¡»úµÄ¼Ç¼´¦¡£ ±ÈÈ磬 ÏÂÃæÊÇ´òÓ¡»ú rattan µÄ¼Ç¼£¬ ʹÓÃÁË lf ±äÁ¿£º
rattan|line|diablo|lp|Diablo 630 Line Printer:\ :sh:sd=/var/spool/lpd/rattan:\ :lp=/dev/lpt0:\ :if=/usr/local/libexec/if-simple:\ :lf=/var/log/rattan.log
È»ºó£¬ ÔٴδòÓ¡¡£ ¼ì²éÈÕÖ¾Îļþ (ÔÚÎÒÃǵÄÀý×Óµ±ÖУ¬ ÊÇ /var/log/rattan.log Õâ¸öÎļþ) À´¿´ÊÇ·ñÓдíÎóÐÅÏ¢³öÏÖ¡£ ¸ù¾Ý³öÏÖµÄÐÅÏ¢£¬ ÊÔ×ÅÀ´ÐÞÕýÎÊÌâ¡£
Èç¹ûÄúûÓÐÖ¸¶¨ lf ±äÁ¿£¬ LPD »áʹÓà /dev/console ×÷ΪĬÈÏÖµ¡£
±¾ÎĵµºÍÆäËüÎĵµ¿É´ÓÕâÀïÏÂÔØ£ºftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.
Èç¹û¶ÔÓÚFreeBSDÓÐÎÊÌ⣬ÇëÏÈÔĶÁÎĵµ£¬Èç²»Äܽâ¾öÔÙÁªÏµ<questions@FreeBSD.org>.
¹ØÓÚ±¾ÎĵµµÄÎÊÌâÇë·¢ÐÅÁªÏµ <doc@FreeBSD.org>.