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

Re: Хочу браузер



On 2002.08.30 at 07:59:38 +0300, Kolgaa@mail.iae.lt wrote:

> > > А не поделитесь опытом настройки Mozilla на русскую печать, какие шрифты
> > > установлены и т.п.?
> > >
> >
> > http://bass.edinstvo.com/rus.htm
> 
> Спасибо за ссылку, но все равно чего-то еще не хватает. Mozilla не хочет
> печатать ни в какую, gv - тоже, хотя страница, распечатанная из броузера в
> файл *.ps, открывается в gv нормально. Может проблема в драйвере принтера
> или нехватке фильтра? Используется lpr-ppd + gpr + hp lj1200.
> 

А у меня после прочтения оной ссылки и вставания волос дыбом на тему
"какой же бред там написан" все запечатало. Именно на lj1200.

Правда, я использую самописыные фильтры, фактически сводящиеся к команде 
cat. Потому что LJ1200 сам умеет Postscript, и нафига я буду процессор
нагружать.

Ход мыслей был следующий:

1. Из переписки в debian-russian следует, что Мозилла генерит
Postscript, который в принципе корректен.

2. Она делает неправильное (по крайней мере для lj1200) предположение,
что шрифты Times-Roman, Helvetica и Courier содержат руские буквы с
правильными именами глифов.

3. Следовательно, надо поменять имена шрифтов в мозилловском postscript
 на такие, где русские буквы действительно есть, например sharatype.

4. Поскольку эти шрифты в принтер не встроены, их надо не забыть
встроить в сам Postscript-файл.,

Результатом этих мыслей явился приаттаченный перловый скрипт, который 
используется следующим образом:

1. Убеждаемся что a2ps печатает нормально. Т.е. в файле
 /usr/share/a2ps/encodings/koi8.edf описаны правильные substitutions,
 в /usr/share/a2ps/afm/fonts.map этим шрифтам соответствуют некоторые
 имена файлов и в /usr/share/a2ps/fonts соответствующие pfa-файлы есть.
 Правильные файлы для a2ps можно взять из архива sharatype.
 
2. В мозилле открывается диалог печати. Нажимается кнопка proprieties
  и вместо команды lpr указывается patchps|lpr
  Параметры у lpr которые там стоят (использование переменной среды
  MOZ_PRINTER_NAME) можно оставить. Они не мешают.

В следующую версию sharatype я этот скриптик вместе с соттветствующими
инструкциями включу.
-- 
Victor Wagner			vitus@ice.ru
Chief Technical Officer		Office:7-(095)-748-53-88
Communiware.Net 		Home: 7-(095)-135-46-61
http://www.communiware.net      http://www.ice.ru/~vitus
#!/usr/bin/perl

my $substfile = '/usr/share/a2ps/encoding/koi8.edf';
my $pfamap='/usr/share/a2ps/afm/fonts.map';
my $pfadir = '/usr/share/a2ps/fonts';
open F,$substfile or die "Cannot open font substitution file ($substfile): $!\n";
my (%fontsubst,%needed,$oldfont,$newfont);
while (<F>) {
	next unless /^Substitute:/;
	(undef,$oldfont,$newfont) = split /\s+/;
	$fontsubst{$oldfont}=$newfont;
	$needed{$newfont}=1;
}	
open F,$pfamap or die "Cannot open font map ($pfamap): $!\n";
my @fonts;
while (<F>) {
	next if /^#/;
	my ($font,$file) = split /\s+/;
	push @fonts,$pfadir . "/" . $file . ".pfa"  if exists $needed{$font};
}
close F;

while (<>) {
  if (/^\%\%BeginProlog/) {
    print;
	for my $file (@fonts) {
	  open F,$file and print STDERR "dumping $file\n";
	  while ($file_line=<F>) {
	    print $file_line;
	  }
	  close F;
	}
   } else {
     if (/^\s+\/([-a-zA-Z0-9_]+)\s+findfont/ && exists $fontsubst{$1}) {
	   $_="\t/$fontsubst{$1} findfont\n";
	 }
	 print;
   }
}   
     

Reply to: