Dokumentets historia
Anmärkning från Mark Komarinski <markk@auratek.com>:
Jag vill tacka Matt Foster för hans hårda arbete med omarbetningen av
denna HOWTO. Jag fortsätter i hans anda, och gör tillägg när så är nödvändigt
för att hålla dokumentet aktuellt.
Anmärkning från Matt Foster <mwf@engr.uark.edu>
Denna version av ``Linux HOWTO---Att Skriva Ut'' är en fullständig omarbetning
av den HOWTO som ursprungligen skrevs av Grant Taylor
<grant@god.tufts.edu> och Brian McCauley
<B.A.McCauley@bham.ac.uk>. Jag har försökt få med allt material som
Grant och Brians HOWTO täcker, men jag har drastiskt förändrat det sätt
på vilket materialet presenteras samt mängden information som tagits
med. Jag tror mig härigenom ha gjort dokumentet mer
lättläst och komplett. Jag kan bara hoppas att du, som läsare, instämmer i det.
Versionshistorik
v1.2.2
- Indexeringsändringar samt några ändringar för att passa in i
den nya RedHat-dokumentationen.
v1.2.1
- Uppdateringar, några ändringar för publiceringen av Dr. Linux
v1.2
- Windows-skrivare
- Hur man ändrar maximal storlek för filer som skall skrivas ut
v1.11
- Ny ansvarig (för dokumentet)!
- Lade till information om lpc
- Lade till en del information om felsökning
- Påbörjade avsnitt om utskrift av grafikfiler!
v1.1
- Ändrade ordalydelsen på några ställen
- Skrev avsnittet om PostScript-utskrifter
- Försökte klargöra några exempel 8-)
- Utökade drastiskt diskussionen om de grundläggande utskriftsverktygen
för Linux
v1.0
- Första versionen som släppts till allmänheten
Upphovsrätt och varumärken
Upphovsrätten till en del namn som förekommer i denna HOWTO tillhör vissa
personer och/eller företag. Dessa namn skrivs antingen med stor
begynnelsebokstav, eller med endast stora bokstäver.
(c) 1995 Matt Foster (mwf@engr.uark.edu)
(c) 1996-1997 Mark F. Komarinski (markk@auratek.com)
Varje översättning, eller annat verk, där hela eller delar av en Linux-HOWTO
ingår, måste omfattas av denna copyright.
Detta innebär, att du inte har rätt att producera något verk, som bygger på
en HOWTO och begränsa distributionen av detta ytterligare. Undantag till
denna regel kan medges i särskilda fall; vänligen kontakta koordinatören
av HOWTO-dokument på adressen nedan.
Vår önskan är att möjliggöra spridning av denna information via så många
kanaler som möjligt. Däremot vill vi behålla upphovsrätten till
HOWTO-dokumenten, och vi vill bli informerade om det finns planer på att
redistribuera dem.
Kontakta Tim Bynum, HOWTO-dokumentens koordinatör, på adressen
<linux-howto@sunsite.unc.edu>. Du kan använda Att hämta hem HOWTO-dokumenten om utskrift
printing!downloading HOWTOs
Om du vill skriva ut detta dokument, rekommenderar jag dig att hämta
PostScript-versionen. Den är utformad på ett estetiskt tilltalande sätt och
dessutom mer lättläst. Det går att hämta PostScript-versionen från någon av
de många platser, där Linux distribueras (som t.ex. SunSITE
).
Gensvar
Frågor, kommentarer eller rättelser gällande denna HOWTO kan skickas till
<markk@auratek.com>.
(Vad gäller i första hand språkliga kommentarer och förslag till förbättringar
av den svenska utgåvan, tas dessa med glädje emot av Peter Nilsson
.)
Tillkännagivanden
Ett stort tack till alla dem som läste alfa-versionen av denna HOWTO och gav
många kommentarer och förslag, vilka varit till stor hjälp; några kan finna
resultatet av sin medverkan i denna version.
Jag vill också rikta ett tack till Matt Foster, som gjorde den ursprungliga
omarbetningen.
Att skriva ut under Linux
I detta kapitel beskrivs hur man skriver ut filer, hur man gör för att titta
på skrivarkön, hur utskriftsjobb raderas från skrivarkön, hur filer formateras
före utskrift samt hur ``utskriftsmiljön'' ställs in.
Historik
printing!history of
Den utskriftshanterare som används under Linux - det s.k. lp-systemet - är en
anpassning av den källkod som utvecklats vid University of California till
Berkley-distributionen av UNIX (BSD).
Att skriva ut en fil med hjälp av lpr
printing!using lpr command
lpr command!usage example
Det allra enklaste sättet att skriva ut något i Linux, är att sända den fil
som skall skrivas ut direkt till skrivarenheten. Detta kan t.ex. göras
genom att använda kommandot cat. Som root, skulle man kunna
skriva
# cat thesis.txt > /dev/lp
I det här fallet, är /dev/lp en symbolisk länk till den verkliga
skrivarenheten---må det vara en matrisskrivare, laserskrivare,
typsättningsmaskin eller plotter. (Se ln(1) för information om
symboliska länkar.)
Av säkerhetsskäl, har endast root och de användare som är medlemmar
av samma grupp som skrivar-demonen rätt att skriva direkt till skrivaren.
Därför måste kommandon som lpr, lprm och lpq
användas för att komma åt skrivaren.
När
Syntaxen för
$ lpr [ val ] [ filnanm ... ]
Om inget
$ cat thesis.txt | lpr
eller
$ pr -l60 thesis.txt | lpr
$ lpr -#2 -sP dj thesis.txt
Detta kommando skapar en symbolisk länk till filen thesis.txt i
spool-katalogen för skrivaren
Se Att titta på skrivarkön med lpq
printing!using lpq command
lpq command!usage example
Använd kommandot
Utmatningen från
$ lpq
lp is ready and printing
Rank Owner Job Files Total Size
active mwf 31 thesis.txt 682048 bytes
Att avbryta ett skrivarjobb med lprm
printing!using lprm command
lprm command!usage example
En annan användbar finess hos en utskriftshanterare är möjligheten att
avbryta ett skrivarjobb som är placerat i kö. Använd
$ lprm -
Kommandot ovan avbryter alla skrivarjobb som ägs av den användare som kör det.
Ett enstaka jobb kan avbrytas genom att först ta reda på jobbets
ID-nummer med
$ lprm 31
avbryta jobb nummer 31 (Att styra lpc
printing!using lpc command
lpc command!usage example
Programmet
$ lpc
Detta startar normalt
$ lpc status all
En lista med tillgängliga kommandon finns på manualsidan till
- disable val - gör att inga nya skrivarjobb kan placeras i
kö
- down val - deaktiverar denna skrivare
- enable val - tillåter nya skrivarjobb att placeras i kön
- quit (eller exit) - avslutar restart val - startar om status val - visar skrivarens status
- up val - slår på utskrift och startar lpd på nytt
RedHats printtool
printing!using Red Hat printool
Red Hat Linux!printool
printool utility
Bara en kort kommentar här angående RedHats förbluffande printtool-program.
Det verkar göra allt som ett magiskt filter gör. RedHat installerar
redan många av de program, som utför själva filtreringen. Jag
beskriver här hur mina skrivarinställningar är under RH 4.0 med en HP
LJ 4L ansluten till parallellporten (samma sak torde gälla för andra versioner
av RedHat också).
- Bli root och plocka fram printtool (om du använde su, glömde
du inte SETENV DISPLAY :0.0 och xhost +, eller?)
- Klocka på "Add" och välj "OK" för en lokal skrivare.
- Fyll i skrivarenheten (/dev/lp1 för mig).
- Fyll i infiltret; välj skrivartyp, upplösning och
pappersstorlek (ljet4, 300x300 och letter).
- Välj "OK" hela vägen tillbaka och starta om lpd.
Precis som när man pillar med en /etc/printcap för hand, går det att
ha flera skrivardefinitioner för varje fysisk skrivare. En för annan
upplösning, pappersstorlek etcetra.
Utskrift av filer
printing!by file type
Detta avsnitt innehåller information om hur du skriver ut olika filer,
som du kommer att komma i kontakt med i ett Linuxsystem.
Att skriva ut grafik
printing!graphics files
Hur man gör för att skriva ut grafikfiler beror dels på vilken typ av
grafik som används och dels på typen av skrivare. Matrisskrivare är
oftast inte användbara i detta sammanhang, p.g.a. deras sätt att
hantera grafik på. Möjligen kan du, om skrivaren är kompatibel med en Epson
eller IBM ProPrinter, konvertera filen till PostScript-format och därefter
använda Ghostscript (se nästa avsnitt) för att skriva ut den.
Om du har en laserskrivare, blir saker och ting betydligt enklare, eftersom
sådana vanligen är kompatibla med PCL. Detta ger dig ett par olika möjligheter.
Vissa program kan direkt göra om filer till PCL. Om så inte är fallet, kan
program som
Det bästa är att installera programpaket som NetPBM eller Ghostscript
och använda ett s.k. magiskt filter (``magic filter'' på engelska) som tar
hand om grafikfilerna automagiskt.
Utskrift av PostScript-filer
printing!Postscript files
Postscript!printing
Att skriva ut PostScript på en skrivare som har en inbyggd PostScript-tolk, är
inte svårt; använd bara
Ghostscripts uppgift är att översätta styrkoderna i en PostScript-fil till
kommandon som skrivaren förstår.
För att skriva ut en fil med Ghostscript, kan du skriva ungefär såhär:
$ gs -dSAFER -dNOPAUSE -sDEVICE=deskjet -sOutputFile=\|lpr thesis.ps
Observera att utmatningen från Ghostscript faktiskt sänds till
.
Att skriva ut PDF-filer
printing!PDF files
printing!Acrobat files
PDF files!printing
Acrobat files!printing
Adobe har släppt en Acrobat-läsare för Linux. Denna är tillgänglig på
Adobes hemsida, . Dess företrädare,
xpdf, finns även att tillgå. Båda torde skriva till en
PostScript-enhet.
Att skriva ut TeX-filer
printing!TeX files
TeX files!printing
Ett av de enklaste sätten att skriva ut TeX-filer, är att först göra om dem
till PostScript och därefter skriva ut dem med hjälp av Ghostscript. För
att göra det, måste de först konverteras från TeX till ett format som kallas
DVI (vilket står för ``device independent''). Det görs med kommandot
$ tex thesis.tex
$ dvips thesis.dvi
Nu kan resultatet skrivas ut på så sätt som beskrivits ovan.
Utskrift av filer som formateras med
printing!troff files
troff files!printing
$ groff -Tascii thesis.tr | lpr
eller, om du så vill,
$ groff thesis.tr > thesis.ps
Skriv sedan ut PostScriptfilen som ovan.
(Översättarens anmärkning: Om filen innehåller svenska tecken, skall
flaggan ``-Tlatin1'' användas.)
Att skriva ut manualsidor
printing!man pages
man pages!printing
$ man man | col -b | lpr
Manualsidorna innehåller förformaterad Diverse ting
Detta avsnitt innehåller information som inte finns någon annanstans.
Att formatera före utskrift
printing!formatting files before
Då de flesta ASCII-filer ej är formaterade för utskrift, kan det vara bra
att formatera dem på något sätt innan de skickas till skrivaren. Det kan t.ex.
innebära att placera titel och sidnummer på varje sida, sätta marginaler,
skriva texten med dubbelt radavstånd, formatera med indrag och/eller skriva
texten i flera spalter. Ett vanligt sätt att göra detta, är att använda en s.k.
förprocessor, som exempelvis
$ pr +4 -d -h"Doktorsavhandling, andra utkastet" -l60 thesis.txt | lpr
I exemplet ovan tar Miljövariabeln PRINTER
printing!PRINTER environment variable
PRINTER environment variable
Alla kommandon som ingår i Linux utskriftshanterare accepterar flaggan -
Istället för att var gång behöva ange skrivare, kan du sätta miljövariabeln
PRINTER till namnet på den skrivare du vill använda. Detta görs på olika
sätt i olika skal. I
$ PRINTER="skrivar_namn"; export PRINTER
och i csh, skriver du kommandot
% setenv PRINTER "skrivar_namn"
Dessa kommandon kan placeras i ditt loginskript (Svar på ofta ställda frågor
printing!frequently asked questions
printing!FAQ
FAQ!printing usage
F1. Hur undviker jag ``trappstegseffekten'' (staircase på engelska)?
printing!staircase effect
S1. ``Trappstegseffekten'' orsakas av det sätt på vilket vissa skrivare
vill att radslut skall markeras. Somliga skrivare vill ha radslut markerade
med vagnretur/radmatning (DOS-varianten) istället för endast radmatning, som
UNIX-system använder. Enklaste sättet att åtgärda problemet är att undersöka om
skrivaren kan växla mellan de två varianterna på något sätt---antingen genom
att ändra en DIP-switch, eller att skicka en kontrollsekvens i början av
varje utskrift. För att göra det senare, måste du skapa ett filter (se F2).
Ett snabbt sätt att fixa det på är att använda ett filter på kommandoraden. Ett
exempel är:
$ cat thesis.txt | todos | lpr
F2. Vad är ett filter?
printing!filter
S2. Ett filter är ett program som läser från standardinmatningen (
F3. Vad är ett magiskt filter?
printing!magic filter
S3. Ett magiskt filter är ett filter som utför olika saker beroende på
filens typ. Om filen t.ex. är en textfil, skrivs den ut som vanligt. Om filen
är en PostScript-fil, eller i något annat format, skrivs den ut på något annat
sätt (Ghostscript). Två exempel på magiska filter är magicfilter och APSfilter.
En nackdel med dessa är att de nödvändiga programmen måste intalleras före
filtret.
Anledningen till det är att filtret, när det installeras, undersöker vilka
program som finns installerade (t.ex. Ghostscript---om det återfinns, vet
filtret att PostScript kan hanteras). Filtret skapar därefter sig själv
på grundval av de program som hittats:
- GhostScript
- TeX
- NetPBM
- jpeg-verktyg
- gzip
F4. Kommer Linux att kunna samarbeta med Windows utskriftshanterare?
printing!Windows Printing System (WPS)
S4. Kanske. Skrivare som endast hanterar WPS-kommandon, kommer inte att
understödjas av Linux. Skrivare som hanterar WPS- och andra kommandon (vilket
exempelvis Canon BJC 610 gör) fungerar, så länge de är inställda på något
annat än WPS. Andra skrivare, som en del HP DeskJet 820C0i/Cse, kommer
*inte* att fungera med Linux. Däremot kan Linux fungera som en
skrivarserver (se Samba) för Win95-datorer, eftersom Win95 har
drivrutiner för sådana skrivare.
F5. Vad är det här för jävla system? Jag kan inte skriva ut mer än sex sidor
utan att få ``file too large''.
printing!file too large error
S5. En av inställningarna i filen /etc/printcap har att göra med
den maximala storleken på en fil som skall skrivas ut. Standardvärdet är
1000 block på disken (ca 500 k?). Vad gäller PostScript-filer och liknande,
innebär detta i storleksordningen 6--8 sidr (inklusive grafik). Lägg till
följande rad i skrivardefinitionen:
mx=0
Huvudskälet till begränsningen är att den partition som spool-katalogen finns
på inte skall bli full. Det finns ett ytterligare sätt att kringgå
begränsningen, nämligen genom att låta
Felsökning
printing!troubleshooting
I detta avsnitt behandlas några vanliga fel som kan uppkomma i samband med
användning av utskriftshanteraren.
Om skrivaren inte fungerar:
- Fungerar andra skrivarjobb? (problem med applikationen?)
- Är lpd igång? (kontrollera med lpc) (print controller?)
- Kan Kan du göra utskrifter från DOS? (kabel-/skrivarproblem?)
Svaren på dessa frågor kan hjälpa dig att finna en lösning.
Skicka ytterligare förslag gällande detta avsnitt till
<markk@auratek.com>.
Referenser
printing!reference material
Detta avsnitt innehåller referenser vad gäller Linux utskriftshanterare. Jag
har försökt hålla avsnittet så inriktat på ämnet som möjligt. Om du tycker att
jag har glömt någon viktig referens, så tveka inte att kontakta mig.
Betänk följande, innan du postar en fråga till en USENET-grupp:
- Tar skrivaren emot skrivarjobb? (Använd lpc(8) för att
kontrollera detta.)
- Kan du finna svaret på din fråga i denna HOWTO eller Grant
Taylors ``Printing HOWTO''?
Om någon av ovanstående frågor kan besvaras med ``ja'', kanske du skall tänka
efter två gånger innan du skickar frågan. Och när du slutligen skickar frågan
till en nyhetsgrupp, försök då att få med all information som behövs. Fråga
inte bara något i stil med ``Jag har problem med lpr. Snälla, hjälp
mig!'' Den typen av brev, kommer de flesta definitivt att hoppa över. Ange
även vilken version av kärnan du använder, på vilket sätt felet inträffade
och, om det finns, exakt det felmeddelande som systemet gav.
Manualsidor
printing!related man pages
- cat(1) slå samman och skriv filer
- dvips(1) konvertera en DVI-fil från TeX till PostScript
- ghostview(1) Visa PostScript-dokument med hjälp av Ghostscript
- groff(1) ``framsida'' till formateringssystemet groff
- gs(1) Ghostscripttolk/-visare
- lpc(8) styrprogram för skrivarna
- lpd(8) skrivardemon
- lpq(1) program för att titta på skrivarköer
- lpr(1) skriv ut i bakgrunden
- lprm(1) ta bort jobb från skrivarköer
- pr(1) konvertera textfiler för utskrift
- tex(1) textformaterings- och typpsättningsprogram
USENET nyhetsgrupper
printing!relates newsgroups
- comp.os.linux.* varierande information om Linux
- comp.unix.* UNIX-relaterade diskussioner