[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Опять русификация



On Thu, May 30, 2002 at 03:22:53PM +0400, Sed-Off wrote:
> -----------------------------------------------
> Прошу прощения за предыдущее письмо:
> Так случилось, что Emacs с --unibyte был запущен
> и Gnus неверно ставил кодировку письма.
> ------------------------------------------------
> 
> Hi!
> >>>>> "Vitaly" == Vitaly A Sergeinko <vitalyas@ingos.ru> writes:
> 
[skipped]

> Пробуем запустить его в ручную:
> /usr/lib/cups/filter/texttops 68 user '' 1 ttt
> 
> Получаем:
> ---------------------------------------------------------------------
> %!PS-Adobe-3.0
> %%BoundingBox: 18 36 594 756
> %%Creator: texttops/CUPS v1.1.14
> %%CreationDate: Thu May 30 14:26:53 2002
> %%Title: 
> %%For: user
> %%Pages: (atend)
> %%DocumentNeededResources: font Courier-Bold
> %%+ font Courier
> %%DocumentSuppliedResources: procset texttops 1.1 0
> %%EndComments
> %%BeginProlog
> % character encoding(s)
> /cupsEncoding00 [
> /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
> /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
> /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
> /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
> /space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quotesingle
> /parenleft/parenright/asterisk/plus/comma/hyphen/period/slash
> /zero/one/two/three/four/five/six/seven
> /eight/nine/colon/semicolon/less/equal/greater/question
> /at/A/B/C/D/E/F/G
> /H/I/J/K/L/M/N/O
> /P/Q/R/S/T/U/V/W
> /X/Y/Z/bracketleft/backslash/bracketright/asciicircum/underscore
> /grave/a/b/c/d/e/f/g
> /h/i/j/k/l/m/n/o
> /p/q/r/s/t/u/v/w
> /x/y/z/braceleft/bar/braceright/asciitilde/.notdef
> /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
> /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
> /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
> /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
> /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
> /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
> /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
> /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
> /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
> /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
> /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
> /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
> /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
> /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
> /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
> /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
> ] def
> % Reencode fonts
> /Courier-Bold findfont
> dup length 1 add dict begin
>  { 1 index /FID ne { def } { pop pop } ifelse } forall
>  /Encoding cupsEncoding00 def
>  currentdict
> end
> /cupsBold exch definefont pop
> /Courier findfont
> dup length 1 add dict begin
>  { 1 index /FID ne { def } { pop pop } ifelse } forall
>  /Encoding cupsEncoding00 def
>  currentdict
> end
> /cupsNormal exch definefont pop
> %%BeginResource: procset texttops 1.1 0
> % Define fonts
> /FN /cupsNormal findfont [12.000 0 0 11.333 0 0] makefont def
> /FB /cupsBold findfont [12.000 0 0 11.333 0 0] makefont def
> % Common procedures
> /N { FN setfont moveto } bind def
> /B { FB setfont moveto } bind def
> /U { gsave 0.5 setlinewidth 0 -1.133 rmoveto 0 rlineto stroke grestore } bind def
> /S { show } bind def
> %%EndResource
> %%EndProlog
>  
> [skip]
> 
> Я совершенно не знаком с PostScript языком, но мне кажется
> этот фильтр нагенерил черезчур много notdef :-(

 Ага.

> И у меня вопрос - что фильтр пытается сделать (шрифт что-ли свой
> описывает?) и если кто боролся - как лечить.

 Нет,  он  описывает  свой  вектор  кодировки  (256-байт  массив,
отображающий код (ASCII-код, как нетрудно видеть) символа  в  имя
глифа.  Имена  глифов  определены  Adobe,  называется... э-э-э...
забыл, ну не важно. Они должны быть определены в шрифте,  русские
(кириллические) буквы там имеют вид afi00...
 Затем находит шрифты Courier и CourierBold, переопределяет на их
базе новые шрифты cupsNormal  и  cupsBold  с  указанным  вектором
кодировки.

 Для  того,  чтобы  печатать  тексты  в  koi8-r или cp1251 нужно,
соответственно, сменить  этот  вектор  кодировки  на  вектор  для
koi8-r  или  cp1251.  Но  это  только  если фильтр сам по себе не
использует   информацию   о   размерах   символов,   а    создаёт
PostScript-файл,  который  бы  сам  подгонял  текст  под  размеры
страницы.

 Более-менее  готовые  векторы  я,  кажется  видел  в   комплекте
русификации  для  a2ps,  присутствующем  в  архиве sharatype. Но,
возможно, что есть и более прямые методы.



-- 
To UNSUBSCRIBE, email to debian-russian-request@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org



Reply to: