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: