Naprej Nazaj Kazalo

10. Ghostscript

Ghostscript je neverjetno pomemben program za tiskanje v Linuxu. Večina tiskalniškega programja sistemov Unix ustvarja postscript, ki tipično zahteva 100 dolarjev vreden dodatek k tiskalniku. Ghostscript je, po drugi strani, prost program in lahko ustvari jezik vašega tiskalnika iz postscripta. Ko ga zvežete z vašim vhodnim filtrom za lpd, vam daje navidezni postscriptni tiskalnik in vam neznansko poenostavi življenje.

Ghostscript je dostopen v dveh oblikah. Komercialna različica ghostscripta, imenovana Aladdin Ghostscript, se lahko prosto uporablja za osebno rabo, a ne sme biti razširjana s komercialnimi distribucijami Linuxa. Na splošno je približno leto dni pred prostim ghostscriptom; trenutno, na primer, podpira številne barvne brizgalnike, ki jih starejši ghostscripti ne, in ima malo boljšo podporo PDF.

Prosta različica ghostscripta je GNU Ghostscript in je preprosto postarana različica Aladdin Ghostscripta. Ta nekoliko čudni dogovor je omogočil podjetju Aladdin, da je postalo projekt prostega programja, ki se v celoti financira sam; najnovejše različice napišejo L. Peter in nekaj zaposlenih, in so licencirane, da jih izdelovalci strojne in programske opreme lahko uporabijo v komercialnih izdelkih. Ta shema je omogočila, da se je L. Peter mnoga leta nepretrgoma ukvarjal z ghostscriptom, žal pa je zavrla sodelovanje širše skupnosti prostega programja. Posebej avtorjem gonilnikov se zdi tak dogovor slab. Načrti L. Petra za upokojitev narekujejo večjo vpletenost skupnosti v projekt, zato razmišlja o spremembah licence in je ustanovil projekt na SourceForge.

Karkoli že počnete s programom gs, preverite, ali ste ga pognali z izbiro za preprečitev dostopa do datotek (-dSAFER). Postscript je polno funkcionalen jezik in slab program v postscriptu vam lahko povzroči precejšen glavobol.

Ko smo že pri PDF, Adobovem formatu za prenosljive dokumente (angl. Portable Document Format), ta je (vsaj do 1.3) pravzaprav le malo več kot organiziran postscript v stisnjeni datoteki. Ghostscript lahko obvlada vhod v PDF prav tako, kakor lahko obvlada postscript. Torej ste lahko prvi v ulici, ki ima tiskalnik, zmožen tiskati PDF.

10.1 Klicanje ghostscripta

Tipično se ghostscript požene s katerimkoli magičnim filtrom, za katerega se odločite (priporočam apsfilter ali svoj lastni lpdomatic, če vaš dobavitelj ni dodal ničesar, kar bi vam ustrezalo), a zaradi razhroščevalnih namenov ga je pogosto priročno pognati neposredno.

gs -help vam izpiše kratek informativni seznam izbir in dostopnih gonilnikov (bodite pozorni na to, da je to seznam gonilnikov, podprtih ob prevajanju, ne celoten seznam vseh dostopnih gonilnikov).

Za poskus lahko poženete gs takole:

gs <izbire> -q -dSAFER -sOutputFile=/dev/lp1 test.ps

10.2 Fine nastavitve izhoda ghostscripta

Marsikaj lahko storite, če niste zadovoljni z izhodom programa gs (pravzaprav lahko storite, karkoli se vam prekleto ljubi storiti, saj imate izvirno kodo).

Nekatere od teh izbir so poleg drugih opisane v knjigi ghostscript User Guide (datoteka Use.htm v distribuciji ghostscripta), verjetno nameščena v /usr/doc ali /usr/share/doc v vašem sistemu) in so izvrstni kandidati za gonilniške izbire v vašem filtrirnem sistemu ali deklaraciji gonilnika PDQ.

Izhodni položaj in velikost

Položaj, velikost in aspect ratio slike na strani, se nadzoruje v ghostscriptu z gonilnikom, odvisnim od tiskalnika. Če se vam zdi, da prihajajo vaše strani iz tiskalnika prekratke ali predolge ali dvakrat prevelike, boste morda želeli pogledati modul z izvirno kodo za vaš gonilnik in nastaviti parametre, da bodo ravno pravšnji za vas. Žal je vsak gonilnik drugačen, tako da vam ne morem točno povedati, kaj morate nastaviti, a večina kode je razumno dobro komentirana.

Gama, velikost pik itd.

Večina nelaserskih tiskalnikov trpi zaradi dejstva, da so njihove pike precej velike. Rezultat je pretemna slika. Če imate take težave, morate uporabiti svojo prenosno funkcijo (angl. transfer function). Preprosto ustvarite naslednjo datoteko v knjižničnem imeniku ghostscripta in dodajte njeno ime v klicu gs prav pred pravo datoteko. Morda boste morali preskušati prave vrednosti, ki ustrezajo vašemu tiskalniku. Manjše vrednosti dajo svetlejši izpis. Zlasti, če vaš gonilnik uporablja Floyd-Steinbergov algoritem rasterizacije barv, so nizke vrednosti (0.2--0.15) verjetno dobra izbira.

---8<---- odrežite in posnemite kot "gamma.ps" ----8<---
%!
%prenosne funkcije za CMYK (cian, škrlatna, rumena, črna)
{0.3 exp} {0.3 exp} {0.3 exp} {0.3 exp} setcolortransfer
---8<------------------8<---

S temi nastavitvami je mogoče tudi popraviti tiskalnike, ki imajo nekakšne barvne napake. Če naredite kaj takega, priporočam uporabo datoteke colorcir.ps, ki jo dobite poleg ghostscripta (v podimeniku examples/) kot testno stran.

Za mnoge od novejših gonilnikov za barvne brizgalnike so na voljo izbire v ukazni vrstici ali različne gonilniške datoteke UPP, ki izvedejo gama popravke in druge spremembe, da prilagodijo tiskalnik različnim vrstam papirja. To bi si morali ogledati, preden se igračkate s postscriptom, da bi popravili to ali ono.

Barvno tiskanje v ghostscriptu

Privzeto stresanje barv (angl. color dithering) v ghostscriptu je optimalizirano za naprave nizke ločljivosti. Barve bo stresalo bolj čudno , da bi izdelalo izhod 60 ppi (ne dpi, ppi -- ,,navidezne`` barvne pike na inč, ki jih dobite po stresanju barv). To naredi bolj klavrn izhod na sodobnih barvnih tiskalnikih; brizgalnikih s fotopapirjem, posebej, so sposobni dosti boljših nastavitev ppi.

Da to nastavite, uporabite izbiro -dDITHERPPI=x, pri čemer je x vrednost, ki naj se uporabi. Morda boste tako dosegli želeni učinek z vsemi gonilniki ali pa tudi ne; številni sodobni gonilniki (npr. gonilnik stp za Epson Stylus) izvajajo lastno stresanje barv in se ne ozirajo na to nastavitev. Nekateri gonilniki lahko uporabljajo bodisi običajno ghostscriptovo ali za gonilnik specifično stresanje barv (npr. gonilnik bjc600 za Canon Bubblejet).

Stresanje barv v ghostscriptu je pravzaprav zelo osnovno. Marsikaj, kar je potrebno za dober izhod na sodobnih tiskalnikih, preprosto ni na voljo v jedru ghostscripta. Različni projekti, da bi popravili to stanje -- in svet prostega programja ima programje za to že pripravljeno -- so blokirani zaradi licenčnega stanja ghostscripta in posledično ,,katedralskega`` razvojnega sloga. Od dogodka Open Source Printing Summit 2000 naprej pa se vsi potrebni ljudje pogovarjajo o tem, zato lahko pričakujete, da se bo to v kratkem izboljšalo.


Naprej Nazaj Kazalo