OT: Odbarveni postscriptu

Zdenek Wagner wagner at cesnet.cz
Thu Mar 28 11:23:53 CET 2002


On Thu, 28 Mar 2002, Jakub Vosahlo wrote:

> Dobry den;
>
> Omlouvam se za OT a v pripade, ze zde byl uz podobny dotaz probiran, prosim
> o nakopnuti do patricnych mist a patricnym smerem.
>
> Mam dokument v pdf v 1.3, liche stranky maji cerny text na oranzovem pozadi,
> sude oranzovy text na cernem pozadi (reklamni brozura). Potrebuju to
> vytisknout a zaroven nevycerpat toner tiskarny. Napadlo me, ze prevod do PS
> a nejaka kouzelna uprava by mohla vyresit muj problem. Patrani (mozna
> nedostatecne trpelive) neprineslo uspech.
>
> Nez se pustim do studia postscriptu zeptam se vas - je mozne ps dokument
> upravit tak, aby vsechny stranky mely bile pozadi a veskery text byl cerne?
> Co se stane s obrazky a ruznymi grafickymi ozdubkami (cary a kolecka okolo
> textu/obrazku) me pro moje ucely nezajima.
>
Neposkytnu hotove reseni, spise navod a bude nutno to doladit metodou
pokusu a omylu. Asi bych vytiskl zvlast sude a zvlast liche stranky do PS
souboru a v nich bych pak predefinoval nektere operatory. Predpokladam, ze
cerna barva textu na lichych strankach bude definovana pomoci

0 setgray

Prepnuti vsech jinych barev bych predefinoval na bilou (c RGB i CMYK)
pomoci:

/white { {pop} repeat 1 setgray} bind def
/setrgbcolor { 3 white} bind def
/setcmykcolor { 4 white } bind def

Na sudych strankach to bude trochu slozitejsi, protoze musime zmenit i
definici setgray, ale budeme potrebovat tu puvodni. Takze volani te
puvodni bude:

/mygray {/setgray} bind def

Tim "bind" se vlozi konkretni definice, takze to odpovida TeXovskemu \let,
bez "bind" by to odpovidalo TeXovskemu \def a po zmene definice setgray by
se zmenilo i chovani mygray. Slo by to obejit pouzitim

systemdict /setgray get exec

ale to je vic psani. Nini predefinujeme setgray tak, aby bylo vzdy bile:

/setgray {pop 1 mygray} bind def

A na zaver vsechny ostatni barvy zmenime na cernou:

/black {{pop} repeat 0 mygray} bind def
/setrgbcolor {3 black} bind def
/setcmykcolor {4 black} bind def

Ted me napada jeste jina (jednodussi) varianta, jak cernou zmenit na bilou
a ostatni sede nechat puvodni. tim se usetri mygray a nove setgray bude:

/setgray {
  dup 0 eq {pop 1} if % vymena cerne za bilou
  systemdict /setgray get exec
} def

V dokumentu mohou byt pouzity i jine barevne modely nez RGB a CMYK, pak
bude nutno pridat dalsi definice. Horsi bude, pokud dokument bude pouzivat
setcolor. Pak budete muset zjistit, jaky je aktualni barevny prostor,
kolik ma slozek a odpovidajici cislo predat jako parametr maker white a
black. Dalsi potiz muze byt v tom, ze cerna bude definovana jako

0 0 0 setrgbcolor

nebo

0 0 0 1 setcmykcolor

nebo dokonce (a to by byla zvrhlost) jako

1 1 1 x setckykcolor (misto x muze byt libovolne cislo mezi 0 a 1). To
vsak z polygrafickeho hlediska neni spravne, i kdyz je to ve vysledku taky
cerne. V takovych pripadech budete muset vyse zminena makra udelat ponekud
chytrejsi.

Barva bitmapovych obrazku se tim neovlivni.

> Diky za pomoc,
>
> Jakub Vosahlo
>
>
> ________________________________________________________________________
> This email has been scanned for all viruses by the MessageLabs SkyScan
> service. For more information on a proactive anti-virus service working
> around the clock, around the globe, visit http://www.messagelabs.com
> ________________________________________________________________________
>
>
>
>

Zdenek Wagner
e-mail: wagner at mbox.cesnet.cz  or  wagner at icpf.cas.cz

see also http://www.icpf.cas.cz/wagner/
         http://icebearsoft.euweb.cz






More information about the csTeX mailing list