Linux Printing HOWTO
Grant Taylor <
[email protected]> Svensk �vers�ttning
av Marcus Rej�s <
[email protected]>
Version 3.17, 1998/06/17 14:03:27 (�versatt 9 juli 1998)
Detta �r Linux Printing HOWTO (Linux skriva ut HURD�), en samling av
information om hur man skapar, f�rhandsgranskar, skriver ut och faxar
n�got under Linux (och andra Unixliknande system).
______________________________________________________________________
Inneh�llsf�rteckning
1. Introduktion
1.1 �vers�ttares kommentar
1.2 Historia
1.3 Copyright
2. Hur man skriver ut
3. Skrivarrutiner i k�rnan
3.1 lp enheten
3.2 Parport enheten `parport device' (k�rnor >= 2.1.33)
3.3 Seriella enheter
4. Skrivare som st�ds
4.1 Skrivar-specifika noteringar
5. Vilken spooling mjukvara?
6. Hur det fungerar, grunderna
7. Konfigurering, grunderna
7.1 Traditionell lpd konfiguration
7.2 Filr�ttigheter
8. Skaffa utskriftsmjukvara
9. Distributioners l�sningar
9.1 Red Hat
9.2 Andra Distributioner
10. Ghostscript.
10.1 Anropa Ghostscript
10.2 Ghostscript output justering
10.2.1 Output placering och storlek
10.2.2 Gamma, punktstorlekar, etc.
11. Hur man skriver ut p� en skrivare �ver n�tverket
11.1 Till en Unix/lpd v�rd
11.1.1 Med
11.1.2 Med
11.2 Till en Win95, WinNT, LanManager, eller Samba skrivare
11.3 Till en NetWare Printer
11.4 Till en EtherTalk (Apple) skrivare
11.5 Till en HP eller annan ethernet skrivare
11.5.1 Till �ldre HPs
11.6 K�ra ett
11.7 Fr�n Windows.
11.8 Fr�n en Apple.
11.9 Fr�n Netware.
12. Windows-only skrivare
12.1 Ghostscripts Windowsbaserade omdirigerare
12.2 Programmet pbm2ppa
13. Hur skriver man ut till en fax.
13.1 Med ett faxmodem
13.2 Anv�nda Remote Printing Service
14. Hur generar jag n�got v�rt att skriva ut.
14.1 Markeringsspr�k (Markup languages)
14.2 WYSIWYG Ordbehandlare
15. F�rhandsgranskning av utskrivbara saker p� sk�rmen.
15.1 PostScript
15.2 TeX dvi
15.3 Adobe PDF
16. Seriella skrivare under lpd
16.1 Konfigurera i printcap
16.2 �ldre seriella skrivare som tappar tecken
17. Tack till
______________________________________________________________________
1. Introduktion
Linux Printing HOWTO borde inneh�lla allt du beh�ver veta f�r att
kunna s�tta upp utskriftsm�jligheter p� din Linuxburk. Som brukligt
�r, s� �r det n�got mer avancerat �n Microsoft och Apples 'peka och
klicka'-v�rld, men det �r ocks� mer flexibelt och definitivt l�ttare
att administrera f�r stora LANs.
Detta dokument �r strukturerat s� att de flesta bara beh�ver l�sa den
f�rsta halvan (ungef�r). Det mesta av det abstrakta och
situiationsberoende stoffet kommer i andra halvan av dokumentet och
kan l�tt lokaliseras i inneh�llsf�rteckningen, men f�rmodligen beh�ver
de flesta l�sa kapitel 9 eller 10.
Eftersom version 3.x �r en helt omskriven version har mycket av
stoffet fr�n tidigare versioner plockats bort. Detta f�r att den
f�reg�ende versionen var s� stor som 60 utskrivna papper och mycket
sv�rl�st. Om du inte hittar svaret p� vad du s�ker h�r b�r du g�ra p�
f�ljande s�tt: a) s�k igenom f�rg�ende version av detta dokument p�
The Printing HOWTO Home Page <
http://www.picante.com/~gtaylor/pht/>
och b) skicka mig en rad d�r det st�r vad som borde vara med i detta
dokument men som inte �r det.
Printing HOWTO Home Page <
http://www.picante.com/~gtaylor/pht/> �r ett
bra st�lle f�r att hitta senaste versionen, den finns ocks�,
naturligtvis, fr�n SunSite (sunsite.unc.edu) och din lokala spegling
av LDP.
1.1. �vers�ttares kommentar
Det skall s�gas att jag inte �r n�gon expert p� att �vers�tta
dokument. Men jag g�r s� gott jag kan. Vissa tekniska ord har mig
veterligt inga svenska motsvarigheter, dessa st�r kvar p� engelska. I
de fall det �r vanligt med ett f�rsvenskat uttal eller stavning av ett
ord har jag anv�nt det.
Ett ofta �terkommande ord �r Daemon. Detta �r ett engelskt ord som mig
veterligt saknar svensk motsvarighet. Jag anv�nder det engelska ordet
med n�got f�rsvenskat uttal i tal, och det engelska i text. En daemon
�r ett program som (oftast) startas upp vid systemstarten och sedan
k�rs i bakgrunden f�r att bevaka och utf�ra vissa uppgifter.
Jag reserverar mig f�r �vers�ttningsfel, rent spr�kliga fel och
stavfel.
Alla l�nkar och h�nvisningar i Texten g�r till originaldestinationen,
vilket inneb�r att de leder till engelska dokument.
�verallt i texten utom denna sektion avser ordet 'jag'
originalf�rfattaren.
Hoppas att detta dokument kommer till nytta!
--Marcus Rej�s <
[email protected]>
1.2. Historia
Detta �r den tredje generationen, vilket betyder att det �r tredje
g�ngen dokumentet skrivs om. Dokumentets historia kan beskrivas som
f�ljer:
1. Jag skrev printing-howto 1992 eftersom det blev f�r m�nga fr�gor om
utskrifter i comp.os.linux, och postade det i gruppen. Detta kom
n�gra m�nader f�re HOWTO projektet och var s�ledes den f�rsta
`mini-FAQen' som kallades `howto'. Den h�r utg�van var i ren ascii.
2. Efter att ha hoppat in i HOWTO projektet blev Printing-HOWTO
sammanslagen med en Lpd FAQ av Brian McCauley
<
[email protected]>; vi fortsatte att samarbeta med PHT under
ett par �r eller s�. Vid n�gon tidpunkt implementerade vi Karl
Auer's <
[email protected]> arbete. Denna generation av PHT var i
TeXinfo, och fanns tillg�nglig i PS, HTML, Ascii, och Info.
3. Efter att ha l�titi PHT f�rfalla i �ver ett �r, och ett misslyckat
f�rs�k att l�mna �ver det till n�gon annan gjordes denna
omskrivning. Denna generation av dokumentet �r i Linuxdoc-SGML
(numer k�nt som Sgml-tools paketet).
1.3. Copyright
Detta dokument �r Copyright (c) 1997 av Grant Taylor. Kopiera och
distribuera detta vida omkring, men modifiera inte dokumentet eller
utel�mna mitt namn.
2. Hur man skriver ut
Om du redan har installerat lpd och konfigurerat f�r att skriva ut p�
din skrivare, eller om din systemadministrat�r eller f�rs�ljare har
gjort det �t dig s� beh�ver du bara l�ra dig att anv�nda kommandot
lpr. Printing Usage HOWTO <
http://sunsite.unc.edu/LDP/HOWTO/Printing-
Usage-HOWTO.html> t�cker detta, och en del andra kommandom f�r att
manipulera skrivark�er som du troligen vill l�ra dig.
Men om du har ett nytt system eller ny skrivare s� m�ste du installera
och konfigurera skrivar rutiner p� ett eller annat s�tt innan du kan
skriva ut. L�s vidare!
3. Skrivarrutiner i k�rnan
3.1. lp enheten
Linux k�rnan (<=2.1.32), f�rutsatt att du kar kompilerat in eller
laddat lp enheten (output av cat /proc/devices skall inneh�lla enheten
lp), tillhandah�ller en eller flera av /dev/lp0, /dev/lp1, och
/dev/lp2. Dessa tilldelas INTE dynamisk utan var och en av dem svarar
mot en specifik I/O adress. Detta betyder att din f�rsta skrivare kan
vara lp0 eller lp1 beroende p� din h�rdvara. Prova b�da.
N�gra f� anv�ndare har rapporterat att deras dubbelriktade lp portar
inte uppt�cks om de anv�nder en �ldre universalriktad skrivarkabel. Se
till att du har en passande kabel.
Man kan inte k�ra plip och lp drivrutinerna p� samma g�ng p� en port.
Du kan dock ladda den ena eller den andra n�r som helst antingen
manuellt, eller med kerneld om du har version 2.x (eller senare
versioner av 1.3.x) av k�rnan. Genom att noggrant st�lla in irq och
dylikt, kan du antagligen k�ra plip p� ena porten och lp p� den andra.
N�gon gjorde s� genom att editera drivrutinen. Jag v�ntar ot�ligt p�
en positiv rapport om n�gon som lyckats g�ra detta med bara en smart
kommandorad.
Det finns ett litet verktyg som heter tunelp med vilket du, som root,
kan finjustera Linux lp enheters irq, "polling rate" och andra
alternativ.
Om den �r inbyggd, i en del 1.3.x och senare k�rnor, kan k�rnan ta
emot lp= argumentet f�r att s�tta irq och io adresser:
N�r lp drivrutinen �r inbyggd i k�rnan kan du anv�nda kommandoraden
till LILO/LOADLIN f�r att s�tta portadresser och irq's som
den drivrutinen skall anv�nda.
Syntax: lp=port0[,irq0[,port1[,irq1[,port2[,irq2]]]]]
exempel: lp=0x378,0 eller lp=0x278,5,0x378,7 **
Observera att om du anv�nder denna finess m�ste specificera *alla*
portar som du vill anv�nda, det finns inga "defaults". Du kan st�nga av
en inbyggd drivrutin med lp=0.
Om den laddas som en modul i version 2 och sena 1.3.x k�rnor �r det
m�jligt att specificera io adresser och irq's p� insmod kommandoraden
(eller i /etc/conf.modules f�r att ha effekt p� kerneld) genom att
anv�nda den vanliga syntaxen. Parametrarna �r io=port0,port1,port2 och
irq=irq0,irq1,irq2. L�s manualsidan f�r insmod f�r ytterligare
information om detta.
**F�r dem av er (som jag sj�lv) som aldrig kan hitta
standardportnumren n�r ni beh�ver dem, de �r som i det andra exemplet
ovan. Den andra porten (lp0) �r p� 0x3bc. Jag har ingen aning om
vilken irq den brukar anv�nda.
K�llkoden f�r Linux parallellportsdrivrutin finns i
/usr/src/linux/drivers/char/lp.c.
3.2. Parport enheten `parport device' (k�rnor >= 2.1.33)
Med b�rjan i k�rna 2.1.33 (och tillg�nglig som patch f�r k�rna
2.0.30), �r lp enheten bara en klient till den nya parport enheten.
F�rdelen med parportenheten �r att den r�ttar till ett antal problem
som den gamla lp enheten led av - den kan dela port med andra
drivrutiner, den tilldelar tillg�ngliga parallellportar dynamiskt till
enhetsnummer ist�llet f�r att kr�va en fast kommunikation mellan I/O
adresser och portnummer, och s� vidare.
Tillkomsten av parport enheten har m�jliggjort en hel flock av nya
parallell-ports drivrutiner f�r saker som, Zip drives, Backpack CD-
ROMs och diskar, etc. En del av dessa finns ocks� tillg�ngliga f�r
2.0.x k�rnor; leta runt p� n�tet.
Jag kommer att t�cka parport drivaren mer komplett d� jag sj�lv
anv�nder en, men tills vidare kan du l�sa filen
Documentation/parport.txt i din k�llkod till k�rnan eller titta p�
parport web site <
http://www.cyberelk.demon.co.uk/parport.html>.
3.3. Seriella enheter
Seriella enheter heter vanligtvis n�got som /dev/ttyS1 under Linux.
Verktyget stty l�ter dig interaktivt studera eller s�tta
inst�llningarna f�r en serieport; setserial l�ter dig kontrollera
ytterligare n�gra attribut och konfigurera IRQs och I/O adresser f�r
icke standard portar. Ytterligare behandling av serieportar under
Linux hittas i Serial-HOWTO <
http://sunsite.unc.edu/mdw/HOWTO/Serial-
HOWTO.html>.
Om du anv�nder en l�ngsam seriell skrivare med fl�deskontroll kan du
komma att uppt�cka att dina utskrifter trunkeras. Detta kan komma av
att serieportens normala beteende �r att sl�nga alla o�vers�nda tecken
fr�n sin buffer 30 sekunder efter det att portenheten st�ngts.
Bufferten kan h�lla upp till 4096 tecken, och om din skrivare anv�nder
fl�deskontroll och �r s� l�ngsam att den inte kan ta emot all data ur
bufferten inom 30 sekunder efter det att utskriftsmjukvaran st�ngt
porten kommer det sista av din utskrift att g� f�rlorad. Om kommandot
cat file > /dev/ttyS2 producerar kompletta utskrifter f�r korta filer
och trunkerade f�r l�ngre kan du ha detta problem.
30 sekundersintervallet kan justeras genom "closing_wait" kommandorads
argumentet till setserial (version 2.12 and later). En maskins
serieportar initieras vanligtvis genom ett anrop till setserial i
startfilen rc.serial. Anropet till skrivarserieporten kan modifieras
s� att det s�tter closing_wait p� samma g�ng som det s�tter den
portens andra parametrar.
4. Skrivare som st�ds
Linux k�rnan st�der i stort s�tt alla skrivare du kan ansluta till en
seriell eller parallell port, men det finns saker att se upp med, och
skrivare som ej g�r att anv�nda �ven om de (elektroniskt s�tt) kan
kommunicera med Linux. Fr�mst bland dessa inkompatibla skrivare �r
s�dana som f�rlitar sig p� "Windows Printing System". (De brukar vara
vagt markerade med "for Windows", eller kallas "GDI"-skrivare.) Dessa
skrivare funkar inte med Linux. De har inte n�gon som helst
intelligens och f�rlitar sig p� att datorns CPU skall g�ra mycket av
det arbete som traditionellt sk�ts av skrivarens processor.
Olyckligtvis kan dessa uppgifter bara utf�ras av tillverkarspecifika
drivrutiner som bara fungerar under Windows. S� k�p inte en s�dan f�r
att anv�nda med Linux. (Obsevera, om du redan har en s� finns det s�tt
att f� Lunux att skriva till en, men de �r ganska kr�ngliga och jag
har aldrig provat sj�lv. Se avsnitt 12 i detta dokument f�r
ytterligare behandling av Windows-only skrivare.)
Vad g�ller skrivare som fungerar under Linux �r det b�sta en skrivare
med PostScript st�d. N�stan all Unix mjukvara som skapar utskrifter,
skapar dessa i PostScript format, s� uppenbart �r det l�mpligt att ha
en skrivare som st�der PostScript direkt. Olyckligtvis �r PostScript
st�d ovanligt p� andra skrivare �n laserskrivare, och �r ibland ett
kostsamt tillbeh�r.
Om du inte har den (st�rre) budget som beh�vs f�r att skaffa en
PostScript skrivare kan du skaffa en skrivare som st�ds av
Ghostscript, en fri PostScript tolk som anv�nds i st�llet f�r �kta
PostScript st�d i skrivaren. P� Ghostscript Home Page
<
http://www.cs.wisc.edu/~ghost/> finns en lista �ver skrivare som
st�ds och information om nya och experimentella drivrutiner. Bidrag
till att f�rb�ttra sidan med skrivare som st�der Ghostscript genom att
rapportera dina (miss)lyckanden med denna mjukvara.
Adobe har nu ett nytt skrivarspr�k som heter "PrintGear" Jag tror att
det �r ett kraftigt f�renklat bin�rformatspr�k med en del arv fr�n
PostScript men ingen PostScript kompabilitet. Jag har inte h�rt n�got
om att Ghostscript skulle st�da det. Men en del av dessa skrivare
st�der andra spr�k som PCL, och dessa fungerar under Linux.
4.1. Skrivar-specifika noteringar
Detta avsnitt �r, och kommer alltid att vara inkomplett. Men det jag
skriver h�r b�r alltid vara korrekt. S� h�r kommer det:
Canon BJ-10ex
En rapport f�resl�r att Canonskrivaren fungerar mycket b�ttre i
Epson LQ l�get (som s�tts med en dip-switch). Tydligen blev
utskriften avbruten eller felaktig i Canon l�ge. � andra sidan,
�r det mycket tydligt Canonst�d i Ghostscript, s� det kan ha
varit en lyckotr�ff.
Lexmark
Lexmark (en g�ng en del av IBM, tror jag) g�r m�nga skrivare,
m�nga av dem �r skrivare enbart f�r 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. Vilken spooling mjukvara?
Tills nyligen var valet f�r Linuxanv�ndare enkelt - alla k�rde samma
gamla lpd som n�stan ordagrant kom fr�n BSD's Net-2 kod. �ven idag har
de flesta distribut�rer med denna mjukvara. Men det b�rjar p� att
�ndras. SVR4-liknande system inkluderande Sun's Solaris har ett helt
annat utskrifts spooling paket, centrerat kring lpsched. Och vissa
tecken tyder p� att Linuxdistribut�rer kommer att byta till LPRng, en
inte alls lika f�r�ldrad skrivar spooling mjukvara som �r tillg�nglig
fritt. LPRng �r mycket l�ttare att adminitrera f�r st�rre
installationer och har en mindre skr�mmande slumpvis kodbas som lpd �r
full av. Det kan till och med �rligt h�vda sig som s�kert - det finns
inga SUID bin�rer, och det st�der autenticering via PGP eller
Kerberos.
F�r tillf�llert, trots belysningen av nya alternativ, �r lpd
troligtvis utm�rkt f�r de flesta Linuxanv�ndare. Trots att det inte �r
det stiligaste systemet, fungerar det utm�rkt d� det v�l �r
konfigurerat och det �r v�l f�rst�tt och rikligt dokumenterat i
tredje-part b�cker om Unix.
Om du vill ha ytterligare information om LPRng, kolla LPRng Web Page
<
http://www.astart.com/lprng/LPRng.html>. Framtida versioner av denna
HOWTO kommer att inkludera b�de hur man anv�nder LPRng och vanlig lpd.
6. Hur det fungerar, grunderna
F�r att f� utskrivning att fungera bra m�ste du f�rst� hur lpd
systemet fungerar.
Lpd st�r f�r Line Printer Daemon, och refererar i en del texter till
b�de daemonen och hela samlingen av program som hanterar
utskriftsspoolingen. Dessa �r:
lpd
Spooling daemon. En av dessa k�r f�r att kontrollera allt p� en
maskin, OCH en k�rs per skrivare medan skrivaren skriver ut.
lpr
Anv�ndares spooling kommando. Lpr kontaktar lpd och stoppar in
ett nytt skrivarjobb i k�n
lpq
Listar jobben i en skrivark�.
lpc
Lpd system kontroll kommando. Med lpc kan du stoppa, starta,
omorganisera, etc skrivark�erna.
lprm
lprm tar bort et jobb ur skrivark�n.
S� hur sitter det ihop? Jo, n�r systemet startar upp, startas lpd. Den
skannar igenom filen /etc/printcap f�r att f� reda p� vilka skrivare
som den skall hantera k�er f�r. Var g�ng n�gon k�r lpr s� kontaktar
lpr lpd genom /dev/printer, och matar lpd med b�de filen som skall
skrivas ut och information om vem som skriver och hur den skall
skrivas ut. lpd skriver s� ut filen p� den passande skrivare som st�r
p� tur.
lp systemet var fr�n b�rjan konstruerat n�r de flesta skrivare var
radskrivare - dvs, folk skrev mest vanlig ascii. Men det visar sig att
bara lite scriptjob beh�vs f�r att lpd skall fungera f�r dagens
utskriftsjob, som oftast �r i PostScript, eller text, eller dvi,
eller...
7. Konfigurering, grunderna
7.1. Traditionell lpd konfiguration
Den minimala konfigureringen f�r lpd resulterar i ett system som kan
k�a filer och skriva ut dem. Det tar ingen h�nsyn till om skrivaren
f�rst�r dem eller inte, och kommer f�rmodligen inte att leda till
attraktiva utskrifter. Men det �r ett f�rsta steg mot att f�rst� hur
det funkar, s� l�s vidare!
F�r att l�gga en skrivark� till lpd m�ste du l�gga till en post
(entry) i /etc/printcap, och skapa en ny katalog f�r skrivark�n (spool
directory) under /var/spool/lpd.
En post i /etc/printcap ser ut s� h�r:
# LOCAL djet500
lp|dj|deskjet:\
:sd=/var/spool/lpd/dj:\
:mx#0:\
:lp=/dev/lp0:\
:sh:
Detta definierar en skrivark� som kallas lp, dj, eller deskjet, k�ade
(spoolade) i katalogen /var/spool/lpd/dj, utan begr�nsning p�
utskriftsjobbens storlek om skriver till enheten /dev/lp0 och som inte
l�gger ett f�rs�ttsblad (med namnet p� den person som skriver ut,
m.m.) till utskriften.
L�s nu manualsidan (man-page) f�r printcap.
Ovanst�ende ser v�ldigt enkelt ut, men det finns en hake - s�vida inte
jag s�nder filer som som en desjet 500 f�rst�r kommer denna deskjet
att skriva konstiga saker. Till exempel om vi skickar en vanlig Unix
text fil till en deskjet f�r vi en utskrift enligt f�ljande:
This is line one.
This is line two.
This is line three.
osv. En PostScript fil som skrivs till denna k� resulterar i en vacker
listning av PostScript kommandon, utskrivna med denna trappstegseffekt
(staircase effect), men ingen anv�ndbar utskrift.
Tydligen beh�vs n�got mer, och detta �r syftet med filtrering
(filtering). De mer observanta av er som l�ste manualsidan till
printcap kanske uppm�rksammade spool-attributen if och of. Just if,
eller 'input-filter' �r precis vad vi beh�ver h�r.
Om vi skriver ett litet script som l�gger till vagnretur f�re radbyten
och kallar det filter kan trappstegseffekten elemineras. Vi m�ste
ocks� l�gga in en if rad i v�r printcap-post h�r ovan:
lp|dj|deskjet:\
:sd=/var/spool/lpd/dj:\
:mx#0:\
:lp=/dev/lp0:\
:if=/var/spool/lpd/dj/filter:\
:sh:
Ett enkelt filterscript skulle kunna vara:
#!perl
# Raden ovan skall ha hela s�kv�gen till perl
# Scriptet m�ste vara k�rbart: chmod 755 filter
while(<STDIN>){chop $_; print "$_\r\n";};
# Eventuellt beh�ver du avsluta med att mata ut papperet: print "\f";
Om vi gjorde som ovan skulle vi f� en skrivark� till vilken vi kunde
skriva ut vanliga Unix textfiler och f� ett meningsfullt resultat.
(Ja, det finns fyra miljoner b�ttre s�tt att skriva detta filter men
f� som �r s� illustrativa. Du uppmuntras att g�ra detta mer effek�
tivt.)
Det enda kvarvarande problemet �r det att det inte �r alltf�r 'hett'
att skriva ut vanlig text - visst skulle det vara b�ttre att kunna
skriva ut PostScript och annan formaterad eller grafisk typ av
utskrift. Jo det �r klart att det vore b�ttre, och det �r inte sv�rt
att fixa till. Metoden �r helt enkelt ett till�gg till ovanst�ende
radmatnings-fixar filter. Om du kan skriva ett filter som kan
acceptera godtyckliga filformat som input och producera DeskJet-kosher
output f�r var och en av dessa har du verkligen ett smart utskrifts
system.
Ett s�dant filter kallas ett magic filter. Bry dig inte om att skriva
ett s�dant sj�lv s�vida du inte skriver mycket underliga saker - Det
finns m�nga redan skrivna �t dig p� n�tet. APS Filter �r bland de
b�sta, eller din Linuxdistribution kan ha ett
skrivarkonfigureringsprogram som g�r detta v�ldigt enkelt.
7.2. Filr�ttigheter
P� allm�n beg�ran l�gger jag in en lista p� filr�ttigheterna p�
intressanta filer i mitt system. Det finns flera b�ttre s�tt att l�sa
detta, idealiskt genom att anv�nda bara SGID bin�rfiler och inte g�ra
allt SUID root, men s� h�r var mitt system fr�n b�rjan och det funkar
bra f�r mig. (Uppriktigt sagt, om din leverant�r inte ens kan
leverera ett fungerande lpd s� �r du ute p� djupt vatten).
-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 m�ste f�r n�rvarande k�ras som root s� att den kan ansluta till
`low-numbered lp service port'. Den borde bli UID lp.lp eller n�got
s�dant efter anslutning, men jag tror inte att den blir det. Det �r
inte bra.
8. Skaffa utskriftsmjukvara
M�nga f�rdigskrivna filterpaket (och annan utskriftsrelaterad
mjukvara) finns tillg�ngliga fr�n SunSite
<
ftp://sunsite.unc.edu/pub/Linux/system/printing/>. Program som
psutils, a2ps, mpage, dvitodvi, flpr, etc kan alla hittas d�r.
Ett tag fanns det flera olika mjukvarupaket ute som f�rs�kte g�ra
skrivarkonfigureringen enklare. De finns troligen kvar, men en av de
b�sta och aktuellaste �r Andreas Klemm's APS Filter paket, som har
menystyrd printcap konfigurerare och hanterar praktiskt taget alla
t�nkbara typer av indata. Om din distribut�r inte skickar med ett
trevligt konfigureringsprogram, �r APS Filter r�tt v�g.
9. Distributioners l�sningar
Detta avsnitt �r, per definition, inte komplett. Skicka g�rna in
detaljer om din favoritdistribution.
9.1. Red Hat
Red Hat har ett grafiskt verktyg f�r skrivaradministration (i
kontrollpanelen) som kan l�gga till n�tverksskrivare och lokala
skrivare. Det l�ter dig v�lja en skrivartyp st�dd av ghostscript och
en Unixenhetsfil att skriva till, och installerar en post i
/etc/printcap och skriver ett kort PostScript-och-ascii magic filter
baserat p� gs och nenscript. Denna l�sning fungerar ganska bra och
�r enkel att konfigurera f�r vanligt f�rekommande fall.
9.2. Andra Distributioner
Sn�lla, skicka mig info om vad andra distributioner g�r!
10. Ghostscript.
Ghostscript �r ett otroligt betydelsefullt program f�r utskrifter
under Linux. De flesta unixprogram som genererar utskrifter genererar
PostScript, vilket oftast �r ett $100 tillbeh�r till en skrivare.
Ghostscript, � andra sidan, �r gratis, och genererar din skrivares
spr�k fr�n PostScript. Kombinerat med ditt lpd input filter, f�r du en
virtuell PostScript skrivare och f�renklar livet avsev�rt.
Ghostscript finns i tv� versioner. Den kommersiella versionen av
Ghostscript, kallad Aladdin Ghostscript, f�r anv�ndas fritt f�r
personligt bruk men f�r inte distribueras med kommersiella
Linuxdistributioner. Den �r generellt s�tt ett �r f�re den fria
versionen. Just nu till exempel s� st�der den kommersiella Adobe
Acrobat's Portable Document Format, medan den �ldre inte g�r det.
Den fria versionen av Ghostscript �r GNU Ghostscript, och �r helt
enkelt en �ldre version av Aladdin ghostscript som v�nligt sk�nkts
till GNU. (Heder till Aladdin f�r detta arrangemang; flera
mjukvaruf�retag borde st�da free software p� detta s�tt).
Vad du �n g�r med gs, var riktigt s�ker p� att det k�rs med argumentet
f�r att om�jligg�ra filaccess (-dSAFER). PostScript �r ett komplett
programspr�k, och ett d�ligt PostScript program skulle kunna ge dig en
rej�l huvudv�rk.
P� tal om PDF, Adobe's Portable Document Format �r faktiskt inte
mycket mer �n organiserad PostScript i en komprimerad fil. Ghostscript
kan hantera PDF precis som PostScript. S� du kan bli den f�rsta i ditt
kvarter med en PDF kapabel skrivare.
10.1. Anropa Ghostscript
Vanligtvis k�rs ghostscript av vilket magic filter du �n anv�nder, men
i debuggingsyfte �r det ofta l�mpligt att k�ra det direkt.
gs -help ger dig en kort informativ lista p� argument och tillg�ngliga
drivrutiner (observera att listan med drivrutiner �r inkompilerad, och
inte huvudlistan p� alla tillg�ngliga drivrutiner).
Du kan k�ra gs i testsyfte som: gs options -q -dSAFER
-sOutputFile=/dev/lp1 test.ps.
10.2. Ghostscript output justering
Det finns flera saker du kan g�ra om inte gs�s output blir till
bel�tenhet (faktisk, kan du g�ra vad f..n som helst eftersom du har
k�llkoden).
10.2.1. Output placering och storlek
Placering, storlek och utseende av en bild p� en sida kontrolleras av
de skrivarspecifika drivrutinen i ghostscript. Om utskriften p� dina
sidor blir f�r hoptryckt och kort, eller utdragen och l�ng, eller f�r
stor med en faktor tv�, b�r du titta i din drivrutins k�llkod och
justera vilka parametrar du �n hittar. Olyckligtvis �r alla
drivrutiner olika, s� jag kan inte ber�tta vad du skall justera, men
de flesta �r skapligt kommenterade.
10.2.2. Gamma, punktstorlekar, etc.
De flesta icke-laser skrivare lider av det faktum att deras punkter �r
relativt stora. Detta resulterar i att bilder blir f�r m�rka. Om du
upplever detta problem skall du anv�nda din egen �verf�ringsfunktion.
Skapa f�ljande fil i ghostscripts lib-katalog och l�gg dess namn till
gs anropet f�re sj�lva filen. Du m�ste kanske finjustera v�rdena f�r
att passa din skrivare. L�gre v�rden resulterar i ljusare utskrift.
Framf�r allt om din skrivare anv�nder en Floyd-Steinberg algoritm f�r
att rastera f�rger �r troligen l�gre v�rden ( 0.2 - 0.15 ) ett bra
val.
---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<---
Det �r ocks� m�jligt att fixa skrivare som har n�got typ av f�rgfel
genom att justera dessa v�rden. Om du g�r n�got s�dant rekommenderar
jag att du anv�nder filen colorcir.ps, som finns med ghostscript (i
examples/ katalogen), som en provsida..
11. Hur man skriver ut p� en skrivare �ver n�tverket
En av finesserna med lpd �r att den st�der utskrift �ver n�tverket
till skrivare fysiskt anslutna till en annan maskin. Med en noggran
kombination av filter scripts och tillh�rande program kan du anv�nda
lpd till att p� ett raktframt s�tt skriva ut p� skrivare anslutna till
alla sorters n�tverk.
11.1. Till en Unix/lpd v�rd
F�r att l�ta andra maskiner skriva till din skrivare m�ste du lista
dem i /etc/hosts.equiv eller /etc/hosts.lpd. (Observera att
hosts.equiv medf�r andra effekter, var s�ker p� att du vet vad du g�r
innan du listar n�gon maskin d�r). Du kan till�ta bara vissa anvndare
p� andra maskiner att skriva till din skrivare genom att anv�nda rs
attributet; l�s lpd manualsidan f�r information om detta.
11.1.1. Med lpd
F�r att skriva ut till en annan maskin skapar du en /etc/printcap post
som denna:
# REMOTE djet500
lp|dj|deskjet:\
:sd=/var/spool/lpd/dj:\
:rm=machine.out.there.com:\
:rp=printername:\
:lp=/dev/null:\
:sh:
Observera att det fortfarande finns en spoolkatalog p� den lokala
maskinen som hanteras av lpd. Om den andra maskinen �r upptagen eller
offline kommer utskriftsjobben att v�nta i spoolkatalogen tills de kan
s�ndas.
11.1.2. Med rlpr
Du kan ocks� anv�nda rlpr f�r att skicka ett utskriftsjob direkt till
en k� p� en annan maskin utan att beh�va g� igenom kr�nglet med att
konfigurera lpd f�r att fixa det. Detta �r anv�ndbart framf�r allt d�
du skriver till olika skrivare bara n�gon enstaka g�ng. Fr�n
introduktionen av rlpr:
Rlpr anv�nder TCP/IP f�r att skicka utskriftsjobb till lpd servrar var
som helst i ett n�tverk.
Till skillnad fr�n lpr kr�ver rlpr *inte* att den andra skrivaren �r
k�nd f�r maskinen som du vill skriva fr�n (t.ex. genom /etc/printcap)
och kan d�rf�r anses vara mer flexibel och kr�ver mindre
administration.
rlpr kan anv�ndas �verallt d�r traditionell lpr kan anv�ndas och �r
bak�tkompatibel med traditionell BSD lpr.
Den st�rsta styrkan med rlpr �r f�rm�gan att skriva ut p� fj�rrenheter
*fr�n var-som-helst till var-som-helst* utan att bry sig om hur det
andra systemet du vill skriva ut fr�n �r konfigurerat. Kan anv�ndas
som ett filter precis som traditionell lpr s� att klienter som k�rs p�
en avl�gsen maskin som netscape, xemacs, etc, etc kan skriva ut till
din maskin med sm� anstr�ngningar.
Rlpr finns tillg�ngligt fr�n SunSite
<
ftp://sunsite.unc.edu/pub/Linux/system/printing/>.
11.2. Till en Win95, WinNT, LanManager, eller Samba skrivare
Det finns en Print to Windows mini-HOWTO d�r ute som inneh�ller mer
info om detta �n vad som finns h�r.
Det �r m�jligt att leda en lpd k� genom smbclient programmet (en del
av samba-sviten) till en TCP/IP baserad SMB print service. Samba
inkluderar ett script f�r detta som kallas smbprint. Kortfattat g�r
det till s� att du l�gger en konfigurationsfil f�r skrivaren i fr�ga i
spool katalogen och installerar smbprint scriptet som if.
/etc/printcap posten ser ut s� h�r:
lp|remote-smbprinter:\
:lp=/dev/null:sh:\
:sd=/var/spool/lpd/lp:\
:if=/usr/local/sbin/smbprint:
Du skall l�sa dokumentationen i smbprint scriptet f�r ytterligare
information om hur du konfigurerar detta.
Du kan ocks� anv�nda smbclient f�r att s�nda en fil direkt till ett
SMB printing system utan att blanda in lpd. Se manualsidan.
11.3. Till en NetWare Printer
ncpfs sviten inkluderar en funktion som kallas nprint som
tillhandah�ller samma funktion som smbprint fast for NetWare. Du kan
skaffa ncpfs fr�n SunSite. Utdrag ur LSM posten f�r version 0.16:
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.
F�r att f� nprint att fungera via lpd m�ste du skriva ett litet script
som skriver stdin p� NetWare skrivaren och installera detta som if
till en lpd skrivark�. Du f�r n�got som liknar:
sub2|remote-NWprinter:\
:lp=/dev/null:sh:\
:sd=/var/spool/lpd/sub2:\
:if=/var/spool/lpd/nprint-script:
nprint-scriptet borde se ut ungef�r s� h�r:
#! /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. Till en EtherTalk (Apple) skrivare
Netatalk paketet inneh�ller n�gonting som liknar nprint och smbclient.
Andra har dokumenterat proceduren f�r att skriva till och fr�n ett
Apple n�tverk mycket b�ttre �n vad jag n�gonsin kommer att g�ra, se
Linux Netatalk-HOWTO <
http://thehamptons.com/anders/netatalk/>.
11.5. Till en HP eller annan ethernet skrivare
HP och n�gra andra skrivare levereras med ett ethernet interface som
du kan skriva till direkt med lpd. Du skall f�lja instruktionerna som
f�ljer skrivaren eller dess n�tverskadapter. Generellt sett "k�r"
dessa skrivare lpd och har en eller flera k�er till vilka du kan
skriva. En HP, till exempel, borde fungera med en printcap post som:
lj-5|remote-hplj:\
:lp=/dev/null:sh:\
:sd=/var/spool/lpd/lj-5:\
:rm=printer.name.com:rp=raw:
HP Laserjet skrivare med Jet Direct interfaces har vanligtvis tv�
stycken inbyggda lpd k�er - "raw" som accepterar PCL (och m�jligtvis
PostScript) och "text" som accepterar ren ascii (och hanterar
automatiskt trappstegseffekten). Om du har en JetDirect Plus3 tre-
portsburk, heter k�erna "raw1", "text2", o.s.v.
I en storskalig milj�, framf�r allt d�r inte alla skrivare st�der
PostScript, kan det vara l�mpligt att utse en speciell skrivarserver
till vilken alla maskiner skriver och p� vilken alla ghostscript jobb
k�rs.
Detta l�ter ocks� din Linuxburk att agera som en spool server till
skrivaren s� att dina n�tverksanv�ndare snabbt kan avsluta sina
utskriftsjobb och fors�tta med annat utan att v�nta p� att skrivaren
skall skriva ut n�got som n�gon annan har skickat.
F�r att �stadkomma detta, s�tt upp en k� p� din Linuxburk som pekar p�
den ethernetutrustade HP LJ (som ovan). Sen konfigurerar du alla
klienter p� ditt LAN att skriva till denna k� (ex. lj-5 i exemplet
ovan).
Till en del HP n�tverksskrivare beh�ver troligen inte
f�rs�ttsbladsinst�llningen skickas av klienterna, du kan st�nga av
deras internt genererade f�rs�ttsblad genom att 'telnetta' till
printern, trycka retur tv� g�nger, skriva "banner: 0" f�ljt av "quit".
Det finns flera inst�llningar som du kan �ndra p� detta vis, skriv "?"
f�r att se en lista.
11.5.1. Till �ldre HPs
En del skrivare (och skrivarrutiner i n�tverk som "black boxes")
st�der bara ett d�ligt litet icke-protokoll med rena TCP anslutningar.
Att m�rka i denna kategori �r tidiga JetDirect (inkluderande en del
JetDirectEx) kort. Kortfattat, f�r att skriva till skrivaren m�ste du
�ppna en TCP anslutning till skrivaren p� en speciell port (vanligtvis
9100 eller 9100, 9101, 9102 f�r tre-ports) och stoppa in ditt
utskriftsjobb i skrivaren. Detta kan, bland annat, implementeras med
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. K�ra ett if f�r fj�rrskrivare
En underlighet men lpd �r att if inte k�rs f�r fj�rranslutna skrivare.
Om du finner att du beh�ver k�ra ett if, s� kan du g�ra detta genom
att konfigurera en dubbel k� och k�a om jobbet. Som ett exempel
studera f�ljande 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:
belyst av detta filter-lj-5 script:
#!/bin/sh
gs <options> -q -dSAFER -sOutputFile=- - | \
lpr -Plj-5-remote -U$5
Argumentet -U till lpr fungerar bara om lpr k�rs som en daemon och
s�tter beg�rarens namn f�r jobbet i den andra k�n p� r�tt s�tt. Du b�r
anv�nda en mer rubust metod f�r att f� anv�ndarnamnet eftersom det i
vissa fall inte �r argument 5. Se manualsidan f�r printcap.
11.7. Fr�n Windows.
Att skriva fr�n en Windows (eller f�rmodligen OS/2) klient till en
Linuxserver �r direkt st�dd �ver SMB genom anv�ndande av SAMBA
paketet, som dessutom st�der fildening av ditt Linux filsystem till
Windowsklienter.
Samba inkluderar en ganska komplett dokumentation, och det finns en
bra Samba FAQ som ocks� t�cker det. Du kan antingen konfigurera ett
magic filter p� Linuxburken och skriva PostScript till detta eller
springa runt och installera skrivarspecifica drivrutiner p� alla
Windowmaskiner och ha en k� f�r dem utan n�got filter. Att f�rlita sig
p� Windows drivrutiner kan i en del fall leda till b�ttre utskrifter,
men ar mer administrativt kr�vande om det �r m�nga Windowsmaskiner. Du
b�r testa PostScript f�rst.
11.8. Fr�n en Apple.
Netatalk st�der utskrift fr�n Apple klienter �ver EtherTalk. Se
Netatalk HOWTO Page <
http://thehamptons.com/anders/netatalk/> f�r mer
information.
11.9. Fr�n Netware.
ncpfs paketet inkluderar en daemon som heter pserver som kan anv�ndas
till att serva en NetWare skrivark�. Vad jag har f�rst�tt kr�ver ett
s�dant system "Bindery-Based NetWare" d.v.s. 2.x, 3.x eller 4,x med
"bindery access" aktiverad.
F�r ytterligare information om ncpfs och dess pserver progam, se the
ncpfs FTP site <
ftp://ftp.gwdg.de/pub/linux/misc/ncpfs/>.
12. Windows-only skrivare
Som jag tidigare n�mnt �r en del skrivare i sig inte st�dda i Linux
eftersom de inte talar normalt skrivarspr�k utan ist�llet anv�nder
datorns CPU f�r att skapa bitmappar som sedan skickas till skrivare i
en best�md hastighet. I n�gra f� fall talar dessa skrivare ocks� n�got
normalt, som PCL, men oftast inte. I en del (verkligt l�gklass) fall
anv�nder inte skrivaren ens en normal parallellanslutning utan
f�rlitar sig p� att tillverkarens drivrutin skall emulera hur
h�rdvaran skall uppf�ra sig (det viktigaste �r handskakningen
`handshaking').
I alla fall, det finns n�gra f� trix att komma runt problemet om du
har fastnat med en s�dan otrevlighet.
12.1. Ghostscripts Windowsbaserade omdirigerare
Det finns nu en Windows skrivardrivrutin tillg�nglig (heter mswinpr2)
som k�r ett skrivarjobb genom Ghostscript innan det slutligen skriver
ut det. (Ist�llet f�r ett if filter i Unix's LPD). Det finns ocks� en
ny Ghostscript drivrutin som skriver genom att anv�nda Windows GDI
anrop. Tillsammans, b�r detta till�ta en Windows maskin att skriva
PostScript till en Windows-only skrivare genom tillverkarens
drivrutin.
Om du f�r det att funka, kan du f�lja instruktionerna ovan f�r att
skriva till en Windows skrivare �ver n�tverket fr�n Linux f�r att l�ta
Unix (och andra Windows, Mac, etc) v�rdar att skriva till din
otrevliga skrivare.
Det skall s�gas att jag aldrig testat detta eftersom jag inte har
n�gon Windowsskrivare, s� du f�r testa sj�lv. All inblandad mjukvara
skall g� att hitta p� Ghostscript's hemsida (se l�nkarna i
Ghostscriptavsnittet i detta dokument).
12.2. Programmet pbm2ppa
En del HP skrivare anv�nder "Printing Performance Architecture"
(marknadsf�ringsspr�k f�r "vi �r f�r billiga f�r att implementera
PCL"). Detta st�ds via en omv�g �ver pbm2ppa �vers�ttaren, skriven av
Tim Norman. Vanligtvis anv�nder du Ghostscript f�r att �vers�tta
PostScript till en bitmappad bild i pbm format och sedan anv�nder
pbm2ppa f�r att �vers�tta denna till ett skrivarspecifikt ppa format
klart f�r att dumpas till skrivaren. Detta program kan ocks� ha kommit
i en Ghostscript drivare vid det h�r laget.
ppa mjukvaran kan h�mtas fr�n the ppa home page
<
http://www.rpi.edu/~normat/technical/ppa/>. pbm2ppa st�der en del
modellar av HP 720, 820, och 1000; l�s dokumentationen som f�ljer med
paketet f�r detaljer om ppa skrivarst�d.
13. Hur skriver man ut till en fax.
13.1. Med ett faxmodem
Det finns ett flertal faxprogram d�r ute som l�ter dig faxa och ta
emot dokument. Ett av de mest komplexa �r Sam Leffler's HylaFax,
tillg�ngligt fr�n ftp.sgi.com. Det st�der allt fr�n flera modem till
broadcasting (=s�nda till flera samtidigt).
SuSE levererar en Java HylaFax klient som p�st�s fungera p� vilken
Java plattform som helst (inkluderande Windows och Linux). Det finns
ocks� icke-Java fax klienter till de flesta plattformar, Linux kan med
st�rsta sannolikhet hantera dina n�tverks fax behov.
Dessutom finns, och ett b�ttre val f�r de flesta Linuxburkar, efax,
ett enkelt program som skickar fax. Getty-programmet mgetty kan ta
emot fax (och till och med voicemail p� en del modem!).
13.2. Anv�nda Remote Printing Service
Det finns en experimentell service som l�ter dig s�nda ett e-
postmeddelande som inneh�ller det du vill skriva ut p� en fax
n�gonstans. Trevliga format som postscript st�ds, s� �ven om global
t�ckning �r gles kan detta vara en anv�ndbar service. F�r ytterligare
information om att skriva ut till en fax via remote printing service,
se Remote Printing WWW Site <
http://www.tpc.int/>.
14. Hur generar jag n�got v�rt att skriva ut.
H�r g�r vi in i ett riktigt r�ttbo av mjukvara. Normalt kan Linux k�ra
flera typer av bin�rfiler med varierande grad av framg�ng: Linux/x86,
Linux/Alpha, Linux/Sparc, Linux/foo, iBCS, Win16/Win32s (med dosemu
och, n�gon dag, med Wine), Mac/68k (med Executor), och Java. Jag
kommer bara att ta upp rena Linux och vanliga Unix program.
Till Linux sj�lvt faller valet oftast begr�nsat till de program som
normalt finns till Unix:
14.1. Markeringsspr�k (Markup languages)
De flesta markeringsspr�k passar b�st till stora eller repetitiva
projekt d�r du vill att datorn skall ta hand om layouten av texten f�r
att g�ra den enhetlig. Att f�rs�ka g�ra ett snyggt tecken i ett
markeringspr�k kommer f�rmodligen att g�ra ont...
nroff
Detta var ett av de f�rsta markeringsspr�ken till Unix.
Manualsidorna �r de vanligaste exemplen p� jobb som formaterats
med *roff macros; m�nga �lskar dem, men nroff har, �tminstone
f�r mig, en kr�ngligare syntax �n n�dv�ndigt, och �r f�rmodligen
ett d�ligt val f�r nya arbeten. Det �r dock v�rt att veta att
du kan typs�tta en manualsida direkt till postscript med groff.
De flesta man kommandon g�r det �t dig med man -t foo | lpr.
TeX
TeX, och macropaketet LaTeX, �r en av de mest anv�nda
markeringsspr�ken anv�nda i Unix. Tekniska arbeten skrivs ofta i
LaTeX eftersom det verkligen underl�ttar layoutproblem och �r
forfarande ett av de f� ordbehandlar system som st�der matematik
b�de komplett och bra. TeX's output format �r dvi, som
konvereras till PostScript eller Hewlett Packard's PCL med dvips
eller dvilj.
SGML
Det finns �tminstone en fri sgml analyserare f�r Unix och Linux;
den formar grunden f�r Linuxdoc-SGML's egna dokumentsystem. Det
kan st�dja andra DTD�s (dokument-typ-deklarationer) ocks�.
HTML
N�gon f�reslog att man f�r enkla projekt kan skriva i HTML och
sedan skriva ut med Netscape. Jag h�ller inte med, men det st�r
f�r mig.
14.2. WYSIWYG Ordbehandlare
Det �r inte l�ngre n�gon brist p� WYSIWYG ordbehandlings mjukvara.
Flera kompletta Office paket finns tillg�ngliga. Ett av dem �r gratis
f�r personligt bruk (StarOffice).
StarOffice
Ett tyskt f�retag distribuerar StarOffice p� Internet gratis f�r
Linux. Detta fullfj�drade office paket har allt du kan f�rv�nta
dig, och du sl�r inte priset. Det finns en mini-HOWTO d�r ute
som beskriver hur du skaffar och installerar det. Det generear
PostScript eller PCL s� det fungerar med i stort s�tt alla
skrivare som normalt fungerar med Linux.
LyX
LyX �r ett skal till LaTeX som verkar mycket lovande. Se the LyX
Homepage <
http://www.lyx.org/> f�r mer information. Det finns en
KDE version av LyX som heter KLyX. F�rfattaren till Lyx och
upphovsmannen till KDE �r samma person.
The Andrew User Interface System
AUIS inkluderar ez, en WYSIWYG-liknande editor med de vanligaste
ordbehandlings tillbeh�ren, HTML kapabilitet coh full MIME e-
post och newsgroup st�d. Tyv�rr underh�lls inte AUIS l�ngre.
Koffice
The KDE project arbetar p� en hel office svit. Jag tror inte att
den �r redo f�r att presenteras �nnu.
GNOME
The GNOME project arbetar ocks� p� n�gra GNU-licensierade
office-verktyg. Inget finns tillg�ngligt �nnu, dock.
Kommersiella alternativ
�tminstone Caldera och Red Hat s�ljer programpaket inneh�llande
de vanliga office applikationerna som en WYSIWYG ordbehandlare
och ett kalkylprogram. Jag antar att de g�r ett snyggt jobb, men
jag har aldrig testat dem. Jag tror att Caldera s�ljer Sun's
WABI ocks�, s� du kan f�rmodligen k�ra n�gonting som MS Office
under det om du m�ste integrera med andras filer.
Jeff Phillips <jeff@I_RATUS.org> anv�nder Caldera's WordPerfect
f�r Linux (p� Slackware, av alla) och s�ger att det fungerar
bra. Det inkluderar tydligen inbyggt skrivarst�d, som man borde
f�rv�nta sig. Caldera borde ha mer information p�
<
http://www.caldera.com/>. Du kan ocks� k�pa en nyare version av
WordPerfect direkt fr�n en av Corels utvalda Unix
�terf�rs�ljare.
RedHat och SuSE levererar ett paket som heter Applixware; du
hittar deras hemsida p� <
http://www.redhat.com/>. Applix finns
tillg�nglig till m�nga plattformar och inkluderar,
kalkylprogram, ordbehandlingsprogram, presentationspaket, osv.
Det finns en separat version av Applix tillg�nglig i Java som
heter ApplixAnyWhere, jag antar att den �r ganska lika som den
andra men l�ngsammare och med mindre finesser.
Andra handlare kan g�rna skicka mig en rad med deras
erbjudanden.
15. F�rhandsgranskning av utskrivbara saker p� sk�rmen.
N�stan allt du kan skriva ut kan ocks� f�rhandsgranskas p� sk�rmen.
15.1. PostScript
Ghostscript har en X11 drivrutin som fungerar b�st under kontroll av
PostScript f�rhandsgranskaren Ghostview. De senaste versionerna av
dessa program borde kunna visa PDF filer ocks�. M�rk att gv har bytt
ut den gamla f�rhandsgranskaren "Ghostview", det nya
anv�ndargr�nssnittet �r mycket snyggare och har mer finesser �n det
enkla gamla Athena gr�nssnittet.
15.2. TeX dvi
TeX DeVice Independant filer kan f�rhandsgranskas under X11 med xdvi.
Moderna versioner av xdvi anropar ghostscript f�r att rendera
PostScript specialare.
En VT100 drivrutin finns ocks�. Den heter dgvt. Tmview fungerar med
Linux och svgalib, om det �r allt du kan �stadkomma.
15.3. Adobe PDF
Adobe's Acrobat Reader finns till Linux; ladda bara hem den fr�n deras
hemsida <
http://www.adobe.com/>.
Du kan �ven anv�nda xpdf, som �r freeware och levereas med k�llkod,
och jag tror att Ghostview st�der visning av PDF filer med gs under
X11 vid den h�r tiden.
16. Seriella skrivare under lpd
16.1. Konfigurera i printcap
Lpd tillhandah�ller fem attribut vilka du kan s�tta i /etc/printcap
f�r att styra inst�llningarna av den seriella port som skrivaren
sitter p�. L�s printcap manualsidan och notera betydelsen av br#, fc#,
xc#, fs# och xs#. De siste fyra av dessa attribut �r bitmaps som
indikerar inst�llningarna f�r att anv�nda porten. Till exempel br#
atrributet �r helt enkelt baudtalet t.ex. `br#9600'.
Det �r v�ldigt enkelt att �vers�tta fr�n stty inst�llningar till
printcap argumentinst�llningar. Om du beh�ver, titta i manualsidan f�r
stty nu.
Anv�nd stty f�r att konfigurera skrivarporten s� att du kan `cat' en
fil till den och den skrivs ut korrekt. D� h�r ser `stty -a' ut f�r
min skrivarport:
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
De enda skillnaderna mellan denna och det s�tt porten initieras vid
systemstarten �r -clocal, -crtscts, och ixon. Din port kan vara annor�
lunda beroende p� hur din skrivare g�r fl�deskontroll.
Du anv�nder faktiskt stty p� ett p� n�gotvis udda s�tt. Eftersom stty
k�r mot terminalen som �r kopplad till dess standard input, anv�nder
du det till manipulera en given serieport genom att anv�nda tecknet
`<' enligt ovan.
N�r du v�l f�tt stty inst�llningarna r�tt, s� att `cat fil >
/dev/ttyS2' (i mitt fall) s�nder filen till skrivaren, tittar du i
filen /usr/src/linux/include/asm-i386/termbits.h. Denna inneh�ller en
en hel del #defines och n�gra structs. (Du kanske vill `cat'a denna
fil till skrivaren (det funkar ju nu, eller hur?) och anv�nda den som
ett kladdpapper) G� till sektionen som b�rjar med
/* c_cflag bit meaning */
#define CBAUD 0000017
Denna sektion listar betydelsen av fc# och fs# bitarna. Du kommer att
m�rka att namnen d�r (efter baudtalen) matchar en av raderna av stty
output. Sa jag inte att detta skulle bli enkelt?
Notera vilken av inst�llningarna som inleds med ett - i din stty
output. Summera ihop alla dessa siffror (de �r oktala). Detta
representerar de bitar som du vill "clear"a, s� resultatet �r din fc#
m�jlighet. Naturligvis, kom ih�g att du kommer att s�tta dessa bitar
direkt efter du har "clear"at, s� du kan anv�nda `fc#0177777' (Det g�r
jag).
Nu g�r du detsamma f�r inst�llningarna (listade i denna sektion) som
inte har ett - f�re dem i din stty output. I mitt exempel �r de
viktiga CS8 (0000060), HUPCL (0002000), och CREAD (0000200). Notera
ocks� argumenten f�r ditt baudtal (mitt �r 0000015). L�gg ihop dessa,
och i mitt exempel f�r du 0002275. Det skall in i din fs# m�jlighet
(`fs#02275' funkar bra i mitt exempel).
G�r samma sak med set och clear f�r n�sta sektion av include filen,
"c_lflag bits". I mitt fall beh�vde jag inte "set"a n�got s� jag
anv�nde bara `xc#0157777' och `xs#0'.
16.2. �ldre seriella skrivare som tappar tecken
Jon Luckey pekar ut att n�gra �ldre seriella skrivare med billiga
seriella interface och sm� buffers verkligen menar stopp n�r de s�ger
s� med fl�deskontrollen. Han kom p� att st�nga av FIFO'n p� hans
Linuxburks 16550 serieportar med setserial fixade problemet med
tappade tecken (du till synes bara specificerar uart typen till 8250
f�r �stadkomma detta).
17. Tack till
smbprint informationen �r fr�n en artikel av Marcel Roelofs
<
[email protected]>.
nprint informationen f�r att anv�nda Netware skrivare tillhandah�lls
av Michael Smith <
[email protected]>.
Seriella skrivare under lpd sektionen �r fr�n Andrew Tefft
<
[email protected]>.
Stoffet om gammas och s�dant f�r gs skickades in av Andreas
<
[email protected]>.
De tv� paragraferna om 30 sekunders closing_wait f�r den seriella
drivrutinen tillhandah�lls av Cris Johnson <
[email protected]>.
Robert Hart skickade in n�gra utm�rkta paragrafer om konfigureringen
av en utskriftsserver till n�tverks HPs som jag anv�nde ordagrant.
Och speciellt tack till er dussin p� dussin som p�pekat stavfel,
brustna URL:er och fel i dokumentet �ver �ren.