
                        The Linux Printing HOWTO İ
                                       
 : Grant Taylor [1]<gtaylor+pht@picante.com>
 : κ [2]<henryjen@acer.net>

   v3.17, 6 June 1998  : 15 December 1998
     _________________________________________________________________
   
   һƪ Linux Printing HOWTO 뱾, ݰ Linux ֮²
   , Ԥ,ӡκļѶ ( Unices).
     _________________________________________________________________
   
1. 

     * 1.1 ʷ
     * 1.2 Ȩ
       
2. ӡ

3. ӡװ

     * 3.1 lp װ
     * 3.2 parport װ (İ汾 >= 2.1.33)
     * 3.3 װ(Serial devices)
       
4. ֧Ԯӡ

     * 4.1 ضӡע
       
5. ӡҵ(spooling software) ?

6. ʽ

7. ϵͳ趨

     * 7.1 ͳ lpd 趨
     * 7.2 Ȩ
       
8. ȡӡ

9. ̵Ľ

     * 9.1 Red Hat
     * 9.2 ķа汾(Other Distributions)
       
10. Ghostscript.

     * 10.1  ghostscript
     * 10.2  ghostscript 
       
11. ӡ·ӡ

     * 11.1 ӡ Unix/lpd
     * 11.2 ӡ Win95, WinNT, LanManager,  Samba ϵӡ
     * 11.3 ӡ NetWare ϵӡ
     * 11.4 ӡ EtherTalk (Apple) ϵӡ
     * 11.5 ӡ HP ̫·(ethernet) ӡ
     * 11.6 Զӡִ if
     * 11.7  Windows ӡ
     * 11.8  Apple ӡ
     * 11.9  Netware ӡ
       
12. Windows רӡ

     * 12.1 Ghostscript Windows (redirector)
     * 12.2 pbm2ppa ʽ
       
13. ӡ

     * 13.1 ʹôݻ(faxmodem)
     * 13.2 ʹԶӡ
       
14. βֵӡĶ

     * 14.1 ʾ(Markup languages)
     * 14.2 (WYSIWYG) 鴦
       
15. өĻԤӡĶ

     * 15.1 PostScript
     * 15.2 TeX dvi
     * 15.3 Adobe PDF
       
16.  lpd ʹʽӡ

     * 16.1 趨 printcap
     * 16.2 ֵľʽӡ
       
17. л
     _________________________________________________________________
   
1. 

    Printing HOWTO Ӧðܰ Linux ƽ̨ϼӡ
   ѶϢ. ⲻ Microsoft  Apple ûѡ, һȹ
   һ͵·.
   
   ļıŷʽϣô󲿷ݵʹֻĶǰ. ĸ
   , Ժ׵شĿ¼ҵ. Դ󲿷˿ֻ
   뿴ھŻʮھͿ.
   
   Ϊ 3.x ļд, ǰ汾еѾõ. ǹ,
   Ϊǰ HOWTOs  60 ҳ, ұŷʽǺ. 
   ļҲĴ,  a) λ [3]Printing HOWTO Home Page
   ľɰļ. Ҳ b) ȱʲᲿ.
   
    [4]Printing HOWTO Home Page ҵļ°汾; ȻҲ
    SunSite (sunsite.unc.edu) ͸ LDP mirror վҵ.
   
1.1 ʷ

   ǵ Printing HOWTO, Ҳǵεȫİ, :
    1.  1992 Ϊ comp.os.linux кܶӡ, д²
        printing-howto.  HOWTO ƻ缸, ͬʱҲǵһݳΪ
       `howto' ĳʴ. һǴָʽ.
    2.  HOWTO ƻ, Printing-HOWTO  Brian McCauley
       <B.A.McCauley@bham.ac.uk> д Lpd FAQ ϲ; Ǽд PHT 
       . Щط Karl Auer <Karl.Auer@anu.edu.au> 
       Ʒ. һ PHT  TeXinfo д, Ҳṩ PS, HTML, Ascii 
       Info İ汾.
    3.  PHT һʱ𽥳Լһγתάʧܾ
       , ¸İ. һ PHT  Linuxdoc-SGML (ڳΪ
       Sgml-tools ׼) дɵ.
       
1.2 Ȩ

   ļİȨΪ Grant Taylor  (c) 1997. ΪƼɢ, 
   Ļʡߵ.
   
   This document is Copyright (c) 1997 by Grant Taylor. Please copy and
   distribute it widely, but do not modify the text or omit my name.
   
2. ӡ

   ϵͳ߻Ѿ趨 lpd Ļ, Ҫıֻѧϰ
   ʹ lpr ָ. [5]Printing Usage HOWTO ⲿݵѶ, 
   һЩӦҪ֪ӡдָ.
   
   һȫϵͳµӡ, ͱڿʼӡǰ趨ӡ
   . , ȥ!
   
3. ӡװ

3.1 lp װ

   Ѿ lp װ(cat /proc/devices ĽԿ lp),
   Linux  (<=2.1.32) ṩһ /dev/lp0, /dev/lp1, /dev/lp2
   װõ. Щָ, ෴, ÿһԶӦһض
   I/O λַ. ʾĵһӡ lp0  lp1, ȫӲ
   . Կ!
   
   ЩʹᵽʹýϾɵĵӡ, ޷⵽ǵ˫ӡ
   Ӳ. ȷʹȷ.
   
   һӡͬʱ plip  lp ʽ, õ 2.x 
   1.3.x ĺ, ֶĵķʽѡ벻ͬʽ. ֻ
   ҪСĵ趨жϵ趨, Ӧÿһִ plip, һ
    lp ʽ. ޸ʽɹ; ϣһ
   򵥵ָͬ.
   
   һСʽ [6]tunelp,  root, 趨 Linux lp װʹõ
   ж (interrupt), ѯ(polling rate) Ŀ.
   
    1.3.x ĺıʱ lp ʽ, Ľ lp= 趨
   жϼ IO λַ:
   
 lp ʽ,  LILO/LOADLIN ָʹõ
IO λַж.

﷨:      lp=port0[,irq0[,port1[,irq1[,port2[,irq2]]]]]

:   lp=0x378,0      lp=0x278,5,0x378,7 **

ҪעǼʹ, ָ ** Ҫõӡ,
ϵͳṩԤֵ.  lp=0 ͣڽʽ.

   ڵڶ 1.3.x ĺģķʽִ,  insmod
   ָ( /etc/conf.modules ģģʽ) ƽ﷨ָ
    IO λַж. Ϊ io=port0,port1,port2  irq=irq0,irq1,irq2. 
   ο [7]insmod ֡ȡøһѶ.
   
   **ЩҪʱȴҲ׼ӡλַ, λַͬڶ
   ʾ, һӡ (lp0)  0x3bc. Ҳ֪һõжһ
   .
   
   Linux вʽԭʼ /usr/src/linux/drivers/char/lp.c.
   
3.2 parport װ (İ汾 >= 2.1.33)

    2.1.33 汾ĺ(2.0.30 Ŀȡ), lp װóΪӵ
   parport װõĿͻ.  parport װýž lp װ
   ʽ - ǿԺʽһӲ, Զָ̬õĲ
   в뽫װõӦ̶ I/O λַȵ.
   
   parport װõĳʹúܶµĲв豸,  Zip ŵ, Яʽ
   CD-ROM ʹŵȵ, ʽԳ. һЩҲṩ 2.0.x Ŀ
   õİ汾, ·ҿ.
   
   ʹ parport ʽ, һ̽. ĿǰԿһº
   ԭʼе [8]Documentation/parport.txt. ҲԵ [9]parport web
   site .
   
3.3 װ(Serial devices)

   װ Linux ͨи /dev/ttyS1 . [10]stty 
   ʽ鿴趨в. [11]setserial Լ
   ʹ÷Ǳ׼ IRQ  I/O λַв. [12]Serial-HOWTO  Linux 
   вһ̽.
   
   ʹõƵӡ, ܻᷢЩض. 
   ΪϵͳԤڳʽرв 30 , ڻδ͵Ԫ
   ᱻ. ڿ 4096 Ԫ, ʹӡʹ,
   ޷ڳʽرв 30 ӡڵԪ, Ỻ
   ݾͻʧ.  cat file > /dev/ttyS2 ָӡ
   Сĵ, ضϽϳĵʱ, ܾ.
   
   30 ڿ setserial (2.12 İ汾) ָ "closing_wait"
   ѡ. һ̨ͨ rc.serial к setserial ʼ
   в. ޸ӡв closing_wait ѡ.
   
4. ֧Ԯӡ

   Linux Ĵ֧Ԯܹӵлвӡ, ЩҪע
   , һЩȻ Linux ͨ(͵ѶŶ) ȴ޷ʹõӡ.
    Linux ݵҪЩ "Windows ӡϵͳ" ӡ. (ͨģ
   رʾ "for Windows" ǳΪ "GDI" ӡ). Linux ʹӡ
   . ӡȫû "ǻ", ǱԵ CPU ͳӡ
    CPU Ĺ. ҵ, Щֻܿṩʽ
   , ֻͨ Windows İ汾. ñӡ Linux ʹ
   . (һѾӡ, Ȼб֮ͨ, ֻ൱ı׾, Ҿ
   Բʹַʽ. ġ Windows-only ӡ뿴 12 )
   
   Щӡһ? õѡ߱ PostScript ֧Ԯӡ.
   е Unix 嶼 PostScript , ԺԵ, 
   һֱ֧Ԯ PostScript ӡĻٺò! ҵǳӡ
   , ӡ֧Ԯ PostScript, ҪȻ൱ѡ
   䱸.
   
   Ԥ㲻һ PostScript ӡ, κ Ghostscript ֧Ԯ
   ӡ. GhostScript һѵ PostScript , ģʵʵ
   ӡ֧Ԯ. [13]Ghostscript ҳ ֧Ԯӡ嵥, ԼµĺͿ
   еʽϢ. Ҳ㽫ɹʧܵľͬҳҪĸ
   ԰æĽҳ.
   
   Adobe ˾һµӡԽ "PrintGear". Ǿ
   PostScript 䲻ݵһִ򻯵Ķλ. Ҳû˵
   ghostscript ֧Ԯ. Щ PrintGear ӡƺҲ֧Ԯ PCL
   , ӡ Linux ʹ.
   
4.1 ضӡע

   һСԶҲ. ҷӦȷ:
   
   Canon BJ-10ex
          ˽ Canon  Epson LQ ģʽȽϺ. ( dip switch
          趨).  Canon ģʽµӡƺʱʱȫʧ. 
          һ, Ghostscript ȷ֧Ԯ Canon ӡ, ܿ
          ֻǸ.
          
   Lexmark
          Lexmark (ԭ IBM һ) ܶӡ. һ
          Windows רõ.
          
          + Color Jetprinter 1000
          + Color Jetprinter 1020 (non Business Edition)
          + Color Jetprinter 2030
          + Color Jetprinter 2050
          + Color Jetprinter 2070
          + Color Jetprinter 7000
          + Color Jetprinter 7200
          + Winwriter 100
          + Winwriter 150c
          + Winwriter 200
            
5. ӡҵ(spooling software) ?

   ֱ, Linux ʹߵѡܼ - ÿܵĶǹϵĴ BSD 
   Net-2 ʽƹ lpd. ʹڽ, 󲿷ݳ. 
   Ѿʼڸı. SVR4 һɵϵͳ,  Solaris 
   Ǹȫͬӡҵ׼, ׼ lpsched Ϊ. ⻹м
   ʾЩ Linux ̻ĳṩµöѵ LPRng. LPRng ĳʽԶ
   Ⱦе lpd й滮, ڴװʱҲΪ׹ ĳ
   ϰȫ - û SUID ִе, ֧Ԯ͸ PGP  Kerberos ʹ
   ֤.
   
   ȻЩѡ, Ŀǰ lpd Դ󲿷ݵ Linux ʹ߶Ӧ㹻. 
   Ȼ³ϵͳ, ֻҪ趨þû, ΪϤ, ͬʱ
   ܶ Unix 鼮Ҳṩ˴˵ļ.
   
   ֪й LPRng Ѷ, 뵽 [14]LPRng ҳ. δ
   HOWTO нʹ LPRng Լʹͨ lpd ѶϢ.
   
6. ʽ

   Ϊӡܹ, Ҫ˽ lpd ϵͳ.
   
   Lpd  Line Printer Daemon д, ָĿǼسʽ(the
   daemon) ִӡҵȫ׳ʽ. :
   
   [15]lpd
          ӡҵسʽ(The spooling daemon). һ
          , ÿһӡеӡҲִһ.
          
   [16]lpr
          ʹߵӡָ. Lpr  lpd ӡͽӡݴ.
          
   [17]lpq
          геȴӡĹ.
          
   [18]lpc
          Lpd ϵͳָ.  lpc , ֹͣ, ʼ, ˳
          ȵ.
          
   [19]lprm
          lprm ԴƳһӡ.
          
   һδһ? ϵͳʱִ lpd. 
   /etc/printcap ЩӡҪӡݴ. ÿʹִ lpr
   ʱ, lpr ͸ /dev/printer Ĳ(socket) ҵ lpd, Ҫӡĵ
   һЩӡԼӡѶ͸ lpd. Ȼ lpd ٽ͵
   ӡ.
   
   lp ϵͳƵʱ, 󲿷ݵӡʽӡ(line printer) - Ҳ
   ˵, 󲿷ݵʹӡָʽ(plain ascii). ǻһЩ
   崦(scripting) ʹ lpd ֽӡ, ͨ
   PostScript, ָʽ,  dvi, ...
   
7. ϵͳ趨

7.1 ͳ lpd 趨

    lpd 趨ֻϵͳеȻӡ, ӡܷϵ
   Щ, Ҳ޷˵ı. , ǿĵһ
   . ǿȥ.
   
   , Ҫһӡ,  /etc/printcap мһʼ¼, Լ
   /var/spool/lpd ֮½һӡݴĹĿ¼(spool directory).
   
   /etc/printcap еļ¼:
   
# LOCAL djet500
lp|dj|deskjet:\
        :sd=/var/spool/lpd/dj:\
        :mx#0:\
        :lp=/dev/lp0:\
        :sh:

   ӶһΪ lp, dj,  deskjet ӡݴ, ݴĹ
   Ŀ¼ /var/spool/lpd/dj, ûеһС, ӡװ
   /dev/lp0, Ҳÿһ֮ǰϱҳ (ӡ˵֮
   ).
   
   ھȥ [20]printcap. ֡.
   
   ӿǳ, һ -  DeskJet 500 ܿ
   ͳȥĵ, ӡ. ˵, һͳ Unix ֵ
    deskjet ᵼԪ(newline) ӡ, Ľ:
   
This is line one.
                 This is line two.
                                  This is line three.

   ͬ, ӡһ PostScript ӡݴõͬ״
   PostScript б, ҪĽ.
   
   ȻǻҪЩʲ,  filtering Ŀ.  printcap ֡
   ıȽϸĵĶ߿Ѿע⵽ if  of . е if, input
   filter Ҫ.
   
   ʹд̶̵ shell script  filter ʹ֮Ԫ֮ǰϻس
   Ԫ(carriage return), Ϳ״. Ǳǰ printcap 
   ¼м if һ:
   
lp|dj|deskjet:\
        :sd=/var/spool/lpd/dj:\
        :mx#0:\
        :lp=/dev/lp0:\
        :if=/var/spool/lpd/dj/filter:\
        :sh:

   ̶̵ filter script :
   
#!perl
# The above line should really have the whole path to perl
# This script must be executable: chmod 755 filter
while(<STDIN>){chop $_; print "$_\r\n";};
# You might also want to end with a form feed: print "\f";

   ķ, Ǿͻõһӡͨ Unix ֵӡ
   ݴ. (İָõķд, ʺϾ,
   ԼдһЧʵ.)
   
   ʣµΨһֻӡֵʵǲ - ܹӡ PostScript
   ʽĻͼ͸. ĵ, Ҳ. 
   ǰ filter. дһܽ⵵ʽ, Ȼÿ
   Բ DeskJet Ҫϵ filter, һǻ͵ӡ
   .
   
    filter ֮Ϊ magic filter. Լдһ, ҪӡĶ
   . ·Ѿкܶдõ, APS Filter Ƿǳһ. Ҳ˵
   Linux а汾(distribution) Ѿһӡ趨ʹһж
   .
   
7.2 Ȩ

   ӦҪ, ҰϵͳһЩصȨг. õ趨
   , ִֻеΪ SGID ҪΪ SUID root, ϵͳԤ
   趨, .(ʵ˵, ĳ lpd ޷ṩ, 
   пͷ.)
   
-r-sr-sr-x   1 root     lp    /usr/bin/lpr*
-r-sr-sr-x   1 root     lp    /usr/bin/lprm*
-rwxr--r--   1 root     root  /usr/sbin/lpd*
-r-xr-sr-x   1 root     lp    /usr/sbin/lpc*
drwxrwxr-x   4 root     lp    /var/spool/lpd/
drwxr-xr-x   2 root     lp    /var/spool/lpd/lp/

   Lpd Ŀǰ root ִвӵͺ(Ӳŵ 1024) lp 
   . ӦøĳὫʹݱ lp , ҲΪ
   . Щʧ.
   
8. ȡӡ

   Ԥдõ filter ׼ (Լӡйص)  [21]SunSite 
   ṩ.  psutils, a2ps, mpage, dvitodvi, flpr ȹ߶Ƕ
   õ.
   
   һ, ܶ׼趨ӡһ. Щ׼ܶ, 
   þ Andreas Klemm  APS Filter ׼. ׼ṩһѡ
   ʽ printcap 趨ʽ, ҼԴκ뵽ʽ. 
   ʹĳ̲δṩһõӡ趨, ѡ APS Filter Ͷ.
   
9. ̵Ľ

   , һǲ. ϲõķа
   (distribution) ϸ.
   
9.1 Red Hat

   Red Hat ṩһ GUI ӡʽ ( control panel ), 
   ·ӡӱװõӡ. ѡ ghostscript ֧Ԯӡ
   ʹõ Unix װõ, Ȼ /etc/printcap 趨ӡ
   , дһ̵ gs  [22]nenscript Դ PostScript 
   ascii  magic filter. , һ, Ҳ趨.
   
9.2 ķа汾(Other Distributions)

   뽫а汾ĴѶϢĸ!
   
10. Ghostscript.

   [23]Ghostscript Ǹ Linux ӡĳʽ. 󲿷 Unix 
   ӡĳʽ PostScript, ӡ PostScript ͨǼֵ
   100 Ԫѡ䱸.  ghostscript ȴѵ, ܽ PostScript
   תӡõ.  lpd input filter ֮, 
   һ PostScript ӡ, ܹ.
   
   Ghostscript 汾. ҵΪ Aladdin Ghostscript, ˿ʹ
   , ǲҵõ Linux а汾ɢ. Aladdin Ghostscript ͨ
   ѵ ghostscript һ; ˵,֧Ԯ Adobe Acrobat 
   Portable Document Format, Ѱľͻû.
   
   Ѱ ghostscript Ϊ GNU Ghostscript, ʵǽϾɰ Aladdin
   Ghostscript. (Aladdin ְֵ; Ӧи峧
   ַʽ֧ (free software)).
   
    [24]gs ʲ, ǵòҪܹȡ ( -dSAFER ѡ).
   PostScript Ǹܵ, һ PostScript ʽ
   ͷ.
   
   ̸ PDF, Adobe  Portable Document Format ʵϾǰ PostScript
   ֯, һЩ书, ѹĵʽ. Ghostscript 
   PostScript ش PDF. һӵод PDF 
   ӡ.
   
10.1  ghostscript

   ͵ magic filter ʹ ghostscript, Ϊ˳,
   ֱִͨȽϷЩ.
   
   gs -help ̵гõѡԼṩʽ. (עг
   Ǳȥʽ, еʽ).
   
   ķʽִ gs : gs options -q -dSAFER
   -sOutputFile=/dev/lp1 test.ps.
   
10.2  ghostscript 

    gs , һЩ취.(ʵ, κ, Ϊ
   ȡԭʼ).
   
  λüС
  
   λ, С, ӰҳϵӾ ghostscript еӡ
   ʽƵ. 㷢ӡ̫, ̫Ǵ, ܻҪһ
   ʽԭʼģ鲢ҵκ뵽Ĳ. ҵÿһʽ
   вͬķʽ, Ҳ޷ε, ô󲿷ݵʽл
   ע.
   
  Gamma, dotsizes, ȵ
  
   󲿷ݵķӡΪӡĵȽϴ, ʻᵼӡͼ̫. ʹ
   , ӦʹԼת. ֻҪ ghostscript 
   lib-dir ½µĵ, ں gs ʱҪӡĵ
   ֮ǰͿ. ܻҪһʵʵֵʺӡ. Сֵ
   ᵼ½ӡЧ. رǵӡʹ Floyd-Steinberg 㷨
   ɫ ( rasterize color ) ǱȽϺõѡ.
   
---8<---- gamma.ps ----8<---
%!
%transfer functions for cyan magenta yellow black
{0.3 exp} {0.3 exp} {0.3 exp} {0.3 exp} setcolortransfer
---8<------------------8<---

   ҲԵЩֵӡɫϵ. Ҫ, 
    ghostscript ڸ colorcir.ps (  examples/ Ŀ¼ ) Ϊҳ.
   
11. ӡ·ӡ

   Lpd һԱǿ͸·ӡʵϵӡ
   . ֻҪϸ filter صĹ߳ʽ, Ϳ lpr ͸
   ͨ (transparently) ӡ·ϵӡ.
   
11.1 ӡ Unix/lpd

   ҪԶ˵Ļܹʹӡӡ, 뽫Զ˻
   /etc/hosts.equiv  /etc/hosts.lpd ֮. (Ҫע hosts.equiv 
   ܶ; Ҫһ, ȷ֪ʲ). 
   Ҳ rs ޶ϵĳЩضʹ߲ʹӡ.
   뿴 [25]lpd ֡ȡⷽѶϢ.
   
   lpd
  
   Ҫӡһ, Ҫ /etc/printcap мļ¼,
   
# REMOTE djet500
lp|dj|deskjet:\
        :sd=/var/spool/lpd/dj:\
        :rm=machine.out.there.com:\
        :rp=printername:\
        :lp=/dev/null:\
        :sh:

   עڱصĻҪһ lpd ӡݴĿ¼. Զ˵Ļ
   ߻æ, ӡڱصݴֱͳȥΪֹ.
   
   rlpr
  
   Ҳ rlpr ӡֱ͵Զ˻, ʡ趨 lpd 
   . żҪӡͬӡ, . һ
   rlpr :
   
   rlpr  TCP/IP ӡ͵·κλõ lpd ŷ.
   
    lpr ͬ, ӡԴ˵Ļ *Ҫ* ȷ֪Զ˵ӡ, (
   ͸ /etc/printcap) ൱ĵ, ĸҲȽ.
   
   rlpr κʹôͳ lpr ĵط, Һʹͳ BSD lpr .
   
   rlpr ĺô춿 *κεطӡκεط* ùӡԴ˵
   ϵͳ趨. ͳ lpr Ϊһ filter, Զ˻ִеĿ
    netscape, xemacs ܹ׵ӡ㱾صĻ.
   
    [26]SunSite ҵ rlpr.
   
11.2 ӡ Win95, WinNT, LanManager,  Samba ϵӡ

    Printing to Windows mini-HOWTO бѶ.
   
   ͸ [27]smbclient ʽ (samba ׼һ) Խ lpd е
   ܹ TCP/IP ֮ϵ SMB ӡ. Samba һ smbprint 
   . 򵥵˵, ӡӡݴĿ¼ (spool directory)
   м趨, ȻὫ if Ϊ smbprint .
   
    /etc/printcap еļ¼Ӧ:
   
lp|remote-smbprinter:\
    :lp=/dev/null:sh:\
    :sd=/var/spool/lpd/lp:\
    :if=/usr/local/sbin/smbprint:

   ӦĶһ smbprint е˵ԵõصѶϢ.
   
   ҲԲ lpd, ֱ smbclient ͵ SMB ӡ. 
   ֡.
   
11.3 ӡ NetWare ϵӡ

   ncpfs ׼аһΪ nprint Ĺ߳ʽ, ṩͬ smbprint һ
   Ĺ, ֻõĶ Netware.  [28]SunSite ȡ ncpfs. 
   Ǵ 0.16  LSM н¼:
   
     With ncpfs you can mount volumes of your netware server under
     Linux. You can also print to netware print queues and spool netware
     print queues to the Linux printing system. You need kernel 1.2.x or
     1.3.54 and above. ncpfs does NOT work with any 1.3.x kernel below
     1.3.54.
     
      ncpfs,  Linux ¹ netware ŷϵĿ¼. Ҳ
     ӡ netware ӡԼ netware ӡŴ(spool) 
     Linux ӡϵͳ. Ҫ 1.2.x  1.3.54 ( 1.3.54) ĺ.
     ncpfs ޷ 1.3.54 ǰκһ 1.3.x .
     
   Ҫʹ nprint ͸ lpd , ҪдСС shell script  stdin ӡ
   Netware ϵӡ,  lpd ӡе if. ܻ:
   
sub2|remote-NWprinter:\
        :lp=/dev/null:sh:\
        :sd=/var/spool/lpd/sub2:\
        :if=/var/spool/lpd/nprint-script:

   nprint-script ܴ:
   
#! /bin/sh
# You should try the guest account with no password first!
/usr/local/bin/nprint -S net -U name -P passwd -q printq-name -

11.4 ӡ EtherTalk (Apple) ϵӡ

   netatalk ׼ nprint  smbclient Ķ. Ѿдʹ
   Apple ·ӡĳ, Զдĺõö;  [29]Linux
   Netatalk-HOWTO.
   
11.5 ӡ HP ̫·(ethernet) ӡ

   Щ HP Ƶӡṩ˿ֱ lpd ӡ̫·. Ӧ
   ӡ·ָʾ, ͨӡ "" 
   lpd, ṩһʹõ. ˵, һ HP ܿ
    printcap:
   
lj-5|remote-hplj:\
        :lp=/dev/null:sh:\
        :sd=/var/spool/lpd/lj-5:\
        :rm=printer.name.com:rp=raw:

    Jet Direct  HP Laserjet ӡ֧ͨԮڽ lpd  -
   "raw"  PCL (Ҳ Postscript), Լ "text" ܵ ascii (
   һԶؿ˷ЧӦ). е JetDirect Plus3 Ľ, 
   еΪ "raw1", "text2" ȵ.
   
   һ͵Ļ, رǸЩӡ֧Ԯ PostScript Ĵͻ, 
   һרŵӡŷ, еĻӡⲿŷе
   ghostscript ⲿŷִпܻ.
   
   Ҳ Linux ΪӡŴŷ(spool server), һ
   ·ʹ߱ԿһǵӡȻֱߵ, 
   ȴӡӡǰͳı.
   
   Ҫ,  linux 趨һӡָ̫· HP
   LJ (ǰ). ڽ·ϵĿͻ趨ָ Linux 
   (ǰе lj-5).
   
   Щ HP ·ӡƺͻͳıҳ(banner page) 趨. 
   Թصڲвıҳ,  telnet ӵӡ,  return
   ,  "banner: 0",  "quit". Ե趨Ҳ
   ʽ;  "?" Կǵı.
   
  ӡȽϾɵ HP ӡ
  
   Щӡ (ǽӡ·װ) ֻ֧Ԯ TCP . һ
   ֵעڵ JetDirect (һЩ JetDirectEx) 濨. 
   , Ҫӡӡ, 뽨ĳض ( 9100, 
   ֵ 9100, 9101  9102)  TCP , ȻὫıͽȥ. 
    Perl ʵ, ķʽ:
   
#!/usr/bin/perl
# Thanks to Dan McLaughlin for writing the original version of this
# script (And to Jim W. Jones for sitting next to Dan when writing me
# for help ;)

$fileName = @ARGV[0];

open(IN,"$fileName") || die "Can't open file $fileName";

$dpi300     = "\x1B*t300R";
$dosCr      = "\x1B&k3G";
$ends = "\x0A";

$port =  9100 unless $port;
$them = "bach.sr.hp.com" unless $them;

$AF_INET = 2;
$SOCK_STREAM = 1;
$SIG{'INT'} = 'dokill';
$sockaddr = 'S n a4 x8';

chop($hostname = `hostname`);
($name,$aliases,$proto) = getprotobyname('tcp');
($name,$aliases,$port) = getservbyname($port,'tcp')
    unless $port =~ /^\d+$/;;
($name,$aliases,$type,$len,$thisaddr) =
        gethostbyname($hostname);
($name,$aliases,$type,$len,$thataddr) = gethostbyname($them);
$this = pack($sockaddr, $AF_INET, 0, $thisaddr);
$that = pack($sockaddr, $AF_INET, $port, $thataddr);

if (socket(S, $AF_INET, $SOCK_STREAM, $proto)) {
#    print "socket ok\n";
}
else {
    die $!;
}
# Give the socket an address.
if (bind(S, $this)) {
#    print "bind ok\n";
}
else {
    die $!;
}

# Call up the server.

if (connect(S,$that)) {
#    print "connect ok\n";
}
else {
    die $!;
}

# Set socket to be command buffered.

select(S); $| = 1; select(STDOUT);

#    print S "@PJL ECHO Hi $hostname! $ends";
#    print S "@PJL OPMSG DISPLAY=\"Job $whoami\" $ends";
#    print S $dpi300;

# Avoid deadlock by forking.

if($child = fork) {
    print S $dosCr;
    print S $TimesNewR;

    while (<IN>) {
        print S;
    }
    sleep 3;
    do dokill();
} else {
    while(<S>) {
        print;
    }
}

sub dokill {
    kill 9,$child if $child;
}

11.6 Զӡִ if

   lpd һѰĵطԶӡ, if ᱻִ. 㷢
   Ҫִ if, 趨˫(double queue) б. ٸ,
   һ printcap:
   
lj-5:\
        :lp=/dev/null:sh:\
        :sd=/var/spool/lpd/lj-5:\
        :if=/usr/lib/lpd/filter-lj-5:
lj-5-remote:lp=/dev/null:sh:rm=printer.name.com:\
        :rp=raw:sd=/var/spool/lpd/lj-5-raw:

   ص filter-lj-5 (script):
   
#!/bin/sh
gs <options> -q -dSAFER -sOutputFile=- - | \
        lpr -Plj-5-remote -U$5

   ֻ lpr Լسʽ(daemon) ģʽִеʱ, -U ѡ, ѡ
   ȷ趨ڶеͼ. Ӧøɿķȡͼ
   , ΪЩʱǵ.  [30]printcap 
   .
   
11.7  Windows ӡ

    SAMBA ׼ֱ֧Ԯ SMB Э Windows ( OS/2) ͻӡ
    Linux ŷ, ׼ͬʱҲ֧Ԯ Linux ϵͳ Windows
   ͻ.
   
   Samba ൱ļ, Ҳһݺܲ Samba FAQ ǵⷽ
   .  Linux  magic filter Ȼ PostScript ӡ, ÿ
   һ Windows ϰװӡרõʽȻΪ趨һκ
   filter . ʹ Windows ʽЩʱбȽϺõ, 
   кܶಿ Windows , ߾ͱȽ鷳. Կ PostScript !
   
11.8  Apple ӡ

   Netatalk ֧Ԯ Apple ͻ͸ EtherTalk ӡ.  [31]Netatalk
   HOWTO Page ȡøһѶ.
   
11.9  Netware ӡ

   ncpfs ׼һ pserver ļسʽ(daemon) ṩ
   NetWare ӡ. ˽, ϵͳ Bindery-based 
   NetWare,  2.x, 3.x, ʹ bindery ȡ 4.x 汾.
   
   Ҫȡøһ ncpfs  pserver ʽѶ,  [32]ncpfs 
   FTP վ.
   
12. Windows רӡ

   ֮ͬǰ۵, ЩӡԭͲ֧Ԯ, Ϊǲʹһ
   ӡ, õԵ CPU λԪ(bitmap), ȻԹ̶
   ʽ֮(pipe to) ӡ. ӡҲʹͨӡ
   , PCL, ͨû. Щ (ǳͽ׵) ӡʹƽв
   , ǿ̵ʽģӲΪ (ҪĿźŽ
   (handshaking)).
   
   㷢ֶӵ, , ܻһЩܵĽ֮.
   
12.1 Ghostscript Windows (redirector)

   һ Windows ӡʽ ( mswinpr2), ӡ
   ֮ǰȽ͵ Ghostscript . (е Unix LPD е if
   filter). Ҳһµ Ghostscript ʽ Windows GDI 
   ӡ. Ƕһ, Ӧÿ Windows ó̵ʽӡ
   PostScript һ Windows רõӡ.
   
   ɹ, ǰ Linux ͸·ӡ Windows ӡ˵
   ,  Unix (Լ Windows, Mac ) ӡӡ.
   
   , ҴûԹ, Ϊû Windows רõӡ, ۿ
   ܲͬ. ǣ浽ӦöԴ Ghostscript ҳ (뿴
   ļ Ghostscript һе) ҵ.
   
12.2 pbm2ppa ʽ

   Щ HP ӡʹ "Printing Performance Architecture" ("̫
   , û PCL" ). Ҫ֧Ԯӡ, ͸ʹ Tim
   Norman д pbm2ppa (translator) ػصķʽ. , ʹ
    ghostscript  PostScript  pbm ʽλԪͼ(bitmapped
   image), Ȼ pbm2ppa ䷭ɿֱӡ(dump) ӡר ppa
   ʽλԪ(bitmap). ʽڿҲ ghostscript ʽʽ
   .
   
   ppa  [33]ppa ҳ ȡ. pbm2ppa ֧Ԯ HP 720, 820,  1000
   һЩ; Ķ׼ļȡй ppa ӡ֧Ԯĸһ
   Ѷ.
   
13. ӡ

13.1 ʹôݻ(faxmodem)

   кܶĴʽ㴫漰ļ. ӵһ Sam
   Leffler  HylaFax,  ftp.sgi.com ȡ. иʽĹ, ʹ
   ಿݻ㲥(broadcasting).
   
   SuSE һ Java  HylaFax ͻӦÿκε Java ƽ̨
   ( Windows  Linux). 󲿷ݵƽ̨Ҳз Java Ĵͻ;
   Linux ȫش·Ҫ.
   
   Դ󲿷ݵ Linux , һϺõѡ,  [34]efax, һʹ
   ļ򵥳ʽ.  getty ĳʽ mgetty Խմ (Щݻ
   Խʼ!).
   
13.2 ʹԶӡ

   ṩһʵԵķ, õʼͳҪӡ, Ȼ
   ӱ𴦵Ĵӡ. ֧ԮһЩĸʽ,  PostScript, 
   Ȼǵ򲻹㷺, ԲʧΪһõķ. Ҫ֪йʹ
   ԶӡѶϢ,  [35]Remote Printing WWW Site.
   
14. βֵӡĶ

   ǿʹõֶ. , Linux ִкֵܶĶλ
   , (ִгɹ) ĳ̶ȸвͬ: Linux/x86, Linux/Alpha,
   Linux/Sparc, Linux/foo, iBCS, Win16/Win32s ( dosemu, 
   Wine), Mac/68k ( Executor),  Java. ҽֻԭ(native) Linux
   ͳ Unix .
   
    Linux , ѡ񼸺Щ Unix һȡõ:
   
14.1 ʾ(Markup languages)

   󲿷ݵıʾ(markup languages) Ƚʺϴ͵ĻظԵļƻ, 
   ҪõֵİȡһԵʱ. ñʾ
   (markup languages) Ưı־ܻ...
   
   nroff
           Unix ıʾ֮һ. ġ - ֲ(man
          pages) -  *roff ޼Ŷɵ;  nroff, 
          ﷨ҪõĸɬѶ(ٶҶ), µĹ, 
          ܲǸѡ. , ֪ groff ֱֲ
           PostScript ֵõ.  man -t foo | lpr, 󲿷ݵ man ָ
          .
          
   TeX
          TeX, ;޼׼ LaTeX,  Unix 㷺ʹõıʾ֮һ. 
          ԵĹͨ LaTeX ׫дΪܴؼ򻯸ʽŵ,
          Ȼõ֧Ԯѧŵִ֮һ. TeX 
          ʽΪ dvi,  dvips  dvilj תΪ PostScript 
          Hewlett Packard  PCL.
          
   SGML
          Unix  Linux һѵ sgml ﷨ʽ(parser) ;
           Linuxdoc-SGML ļϵͳĻ. Ҳ֧Ԯ
          DTD(ļ̬).
          
   HTML
          ˽˵춱Ƚϼ򵥵ļƻ,  HTML ׫д, Ȼ Netscape ӡ
          ܾ㹻. Ҳ޳, вͬ.
          
14.2 (WYSIWYG) 鴦

   õ鴦Ҳû. кüװ칫װ(office
   suite), лһ (StarOffice) øʹ.
   
   StarOffice
          һҵ¹˾·ɢ Linux 汾 StarOffice. ȫ
          İ칫װҪĹ, ޷ļ۸. 
          һ mini-HOWTO ˵ȡòװ.  PostScript  PCL,
          ӦÿԺʹ󲿷 Linux ʹõӡһʹ.
          
   LyX
          LyX Ǹֵڴ LaTeX ǰ. 뿴 [36]LyX ҳ ȡøһ
          ѶϢ. һ KDE  LyX 汾,  Klyx; Lyx ߺ
          KDE ͬһ.
          
   The Andrew User Interface System
          AUIS  ez, һ÷ı༭, 󲿷ݻ
          鴦, HTML , Լȫ֧Ԯ MIME ʽĵʼ
          Ⱥ. ҵ, ûټά AUIS.
          
   Koffice
          KDE ƻڳȫ׵İ칫װŬ. ҲΪѾ׼
          ʹ.
          
   GNOME
          GNOME ƻҲŬ಻ͬ GNU Ȩİ칫ҹ. ǻ
          ûһ.
          
   Commercial offerings
           Caldera  Red Hat ṩһİ칫Ӧóʽ, 
          õ鴦, ׼. Ҳĺܲ, Ҵ
          ûù.  Caldera ṩ Sun  WABI, 
          ĵĻ, ܿǵִ MS Office һ.
          
          Jeff Phillips <jeff@I_RATUS.org> ʹ Caldera  Linux 汾
          WordPerfect ( Slackware , еѡ֮), ˵һ
          . ƺڽӡ֧Ԯ, ͬһҪ. Caldera
          Ӧû [37]http://www.caldera.com/ ṩһЩѶ. Ҳֱ
           Corel ѡ Unix ֲ˾° WordPerfect.
          
          RedHat  SuSE Ҳṩһװ Applixware; 
          [38]http://www.redhat.com/ ҵǵվ. Applix ƽ̨϶
          , Ұһ, 鴦, һʾ׼(presentation
          package) ȵ. һ Java  Applix  ApplixAnyWhere;
          ҲҲͬĶ, һ, һЩ.
          
          ĳظṩĲƷ.
          
15. өĻԤӡĶ

   κӡĶͿөĻϹۿ.
   
15.1 PostScript

   Ghosrscript һ X11 ʽ PostScript Ԥʽ [39]gv 
   ʹ. Щʽ°ӦҲԿ PDF . Ҫע gv Ѿȡ
   ϾɵԤʽ "Ghostview"; µʹ߽Ҫ ghostview ƽϾɵ
   Athena ͼʹ߽ƯĶ, ҲȽ϶.
   
15.2 TeX dvi

   TeX DeVice Independant  X11  [40]xdvi Ԥ. ִ
   xdvi  ghostscript  PostScript Ĳ.
   
   Ҳһ VT100 ʽ,  dgvt. ֻĻ, Tmview 
   Դ Linux  svgalib һ.
   
15.3 Adobe PDF

   Adobe  Acrobat Reader ṩ Linux ; ֻҪǵվ
   [41]http://www.adobe.com/ ؾͿ.
   
   Ҳ xpdf, Ǹ(freeware) Ҹԭʼ, ͬʱ
   Ghostview ӦѾ֧Ԯ X11  gs  PDF .
   
16.  lpd ʹʽӡ

16.1 趨 printcap

   Lpd  /etc/printcap ṩ趨, ӡ
   ӵв趨. Ķ [42]printcap ֡(man page), ע
   br#, fc#, xc#, fs#  xs# . ĸλԪ
   (bitmap), вʹ趨.  br# ֻǵı(baud
   rate),  `br#9600'.
   
   Ҫ [43]stty 趨תΪ printcap 趨(flag settings) ǳ
   . ʹҪ, ھͿ stty ֡.
   
    stty 趨ӡ, ԱԽһ cat ò, ʹ
   ȷӡ. ҵӡ `stty -a' Ľ:
   
dina:/usr/users/andy/work/lpd/lpd# stty -a < /dev/ttyS2
speed 9600 baud; rows 0; columns 0; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>;
eol2 = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W;
lnext = ^V; min = 1; time = 0;
-parenb -parodd cs8 hupcl -cstopb cread -clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr
-igncr -icrnl ixon -ixoff -iuclc -ixany -imaxbel
-opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0
bs0 vt0 ff0
-isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase
-tostop -echoprt -echoctl -echoke

   Ϳʱвʼ趨ʽΨһĲͬ -clocal, -crtscts, 
   ixon. ӡ(flow control) ʽ, 趨ܻ᲻ͬ.
   
   ʵ, ķʽʹ stty. Ϊ stty Ķڱ׼
   (standard input) ϵն˻װ, ʾ `<' Ԫ, ʹ
   stty ָв.
   
   ֻҪ stty 趨ȷ, `cat file > /dev/ttyS2' (ҵ) ͿԽ
   ͵ӡ, 뿴һ
   /usr/src/linux/include/asm-i386/termbits.h, ˺ܶ #define һ
   Щ struct ( cat ӡ (Ѿ˰, Բ?), Ȼ
   ֽ). ҵһ:
   
/* c_cflag bit meaning */
#define CBAUD   0000017

   һг fc#  fs# λԪ. ֵᷢǶ (ڱ֮)
    stty Ľһ, Ҳ˵?
   
   ҵЩ stty ǰм(-) 趨, Щ(ǰ˽λ)
   . ҪλԪ,  fc# . ȻҲֱ
    `fc#0177777' (Ҿ), Ϊ㽫֮趨ЩλԪ.
   
   ڶЩ stty Ľûмǰ趨 (һг) 
   ͬ. ҵ, Ҫ趨 CS8 (0000060), HUPCL (0002000), 
   CREAD (0000200). ͬʱҲҵıʵ (ҵ 0000015), 
   ͳͳ, ҵлõ 0002275.  fs# 
   (`fs#02275' ҵĺܺ).
   
   ͬķʽ⵵(include file) еһ, "c_lflag bits", 
   趨Ķ. ҵҲҪ趨κζ, ֻҪ
   `xc#0157777'  `xs#0' Ϳ.
   
16.2 ֵľʽӡ

   Jon Luckey ָЩ ten-cent нСľ͵ʽӡ
   , ʹʱ, ˵ֹͣıʾֹͣ.  [44]setserial ͣ
    Linux  16550 в FIFO , ֵͽ (
   Ҫ, ƺֻҪ uart ָΪ 8250 Ϳ).
   
17. л

   smbprint ѶǴ Marcel Roelofs <marcel@paragon.nl> һƪ.
   
   йʹ Netware ӡ nprint Ѷ Michael Smith
   <mikes@bioch.ox.ac.uk> ṩ.
   
    lpd ʹʽӡһ Andrew Tefft
   <teffta@engr.dnet.ge.com> ṩ.
   
   й gs  gamma Ľ Andreas <quasi@hub-fue.franken.de> .
   
   йв 30  closing_waiting  Chris Johnson
   <cdj@netcom.com> ׵.
   
   Robert Hart һЩѵƬ, ǹ趨һʹ HP ·ӡӡ
   ŷ, .
   
   Ҫرлл֮еĺܶ, Щָд, url, Լ
   ִ, лл.

References

   1. mailto:gtaylor+pht@picante.com
   2. mailto:henryjen@acer.net
   3. http://www/picante.com/~gtaylor/pht/
   4. http://www.picante.com/~gtaylor/pht/
   5. http://sunsite.unc.edu/LDP/HOWTO/Printing-Usage-HOWTO.html
   6. http://www.picante.com/~gtaylor/pht/man/tunelp.8.html
   7. http://www.picante.com/~gtaylor/pht/man/insmod.1.html
   8. http://www.cyberelk.demon.co.uk/parport/parport.txt
   9. http://www.cyberelk.demon.co.uk/parport.html
  10. http://www.picante.com/~gtaylor/pht/man/stty.1.html
  11. http://www.picante.com/~gtaylor/pht/man/setserial.8.html
  12. http://sunsite.unc.edu/mdw/HOWTO/Serial-HOWTO.html
  13. http://www.cs.wisc.edu/~ghost/
  14. http://www.astart.com/lprng/LPRng.html
  15. http://www.picante.com/~gtaylor/pht/man/lpd.8.html
  16. http://www.picante.com/~gtaylor/pht/man/lpr.1.html
  17. http://www.picante.com/~gtaylor/pht/man/lpq.1.html
  18. http://www.picante.com/~gtaylor/pht/man/lpc.8.html
  19. http://www.picante.com/~gtaylor/pht/man/lprm.1.html
  20. http://www.picante.com/~gtaylor/pht/man/printcap.5.html
  21. ftp://sunsite.unc.edu/pub/Linux/system/printing/
  22. http://www.picante.com/~gtaylor/pht/man/nenscript.1.html
  23. http://www.cs.wisc.edu/~ghost/
  24. http://www.picante.com/~gtaylor/pht/man/gs.1.html
  25. http://www.picante.com/~gtaylor/pht/man/lpd.8.html
  26. ftp://sunsite.unc.edu/pub/Linux/system/printing/
  27. http://www.picante.com/~gtaylor/pht/man/smbclient.1.html
  28. ftp://sunsite.unc.edu/pub/Linux/system/filesystems/ncpfs/
  29. http://thehamptons.com/anders/netatalk/
  30. http://www.picante.com/~gtaylor/pht/man/printcap.5.html
  31. http://thehamptons.com/anders/netatalk/
  32. ftp://ftp.gwdg.de/pub/linux/misc/ncpfs/
  33. http://www.rpi.edu/~normat/technical/ppa/
  34. http://www.picante.com/~gtaylor/pht/man/efax.1.html
  35. http://www.tpc.int/
  36. http://www-pu.informatik.uni-tuebingen.de/users/ettrich/
  37. http://www.caldera.com/
  38. http://www.redhat.com/
  39. http://www.picante.com/~gtaylor/pht/man/gv.1x.html
  40. http://www.picante.com/~gtaylor/pht/man/xdvi.1.html
  41. http://www.adobe.com/
  42. http://www.picante.com/~gtaylor/pht/man/printcap.5.html
  43. http://www.picante.com/~gtaylor/pht/man/stty.1.html
  44. http://www.picante.com/~gtaylor/pht/man/setserial.8.html
