Использование русских Type 1 шрифтов в Windows 2000/XP/2003.

Как известно, Windows 2000/XP работает с Type 1 шрифтами не так, как Windows 95/98/ME. И для многих шрифтов и многих программ возникают сложности.
Хотелось бы, чтобы русские Type 1 шрифты правильно работали во всех программах - были видны, вводились с клавиатуры, печатались, дистиллировались, RIP-овались, в них был правильный кернинг и т.п.
Как оказалось, это вполне можно сделать, но не для всех программ одинаково, MS Word требует особых условий. Ибо для Type 1 шрифтов есть параметр WindowsCharSet в .INF-файле (ему соответствует байт 0x55 в PFM-файле), который разные программы интерпретируют по-разному. И нет значения этого параметра, при котором все программы вели бы себя хорошо.

Суть проблемы:

Посмотреть на форуме.

Основной вариант использования шрифтов.

Вариант шрифтов, созданный программой Type1Cyr по умолчанию:
в этом варианте у шрифта должны быть правильные параметры (см. ниже), а значение параметра WindowsCharSet в .INF-файле должно быть равно 0.

После установки таких шрифтов в Windows 2000/XP/2003, в программах Adobe FrameMaker, Adobe Illustrator, Adobe Indesign, Quark XPress, шрифты видны, русские символы вводятся с клавиатуры, печатаются, дистиллируются, RIP-уются, программы устанавливают для них правильный кернинг и т.п.
В программах Corel Draw, Corel Ventura, со шрифтами тоже всё в порядке, но кернинг для русских букв эти программы не видят. Чтобы увидели, приходится применять хак с подменой кодовой страницы (как это сделать смотрите здесь).
Adobe Photoshop русские буквы видит, печатает и т.п., но кернинга для русских букв нет даже при включении хака с подменой кодовой страницы.

Альтернативный вариант использования шрифтов.

При использовании Windows 95/98/ME, как правило, установлены русские Type 1 шрифты со значением параметра .INF-файла WindowsCharSet, равным 204, а при использовании Windows 2000/XP/2003 - нет, поэтому некоторые программы, среди которых, к сожалению, Microsoft Word, без WindowsCharSet=204 правильно не работают.
В связи с этим и под Windows 2000/XP/2003 иногда бывает целесообразно устанавливать русские Type 1 шрифты с параметром WindowsCharSet=204 в .INF-файле.

Этот вариант шрифтов программа Type1Cyr создаёт при указании параметра /W (или /E=204).

После установки таких шрифтов в Windows 2000/XP/2003, в программах Adobe Illustrator, Adobe Indesign, шрифты видны, русские символы вводятся с клавиатуры, печатаются, дистиллируются, RIP-уются, программы устанавливают для них правильный кернинг и т.п.
В программах Adobe FrameMaker, Adobe PageMaker, Corel Draw, Corel Ventura, Microsoft Word, Quark XPress шрифты видны, русские символы вводятся с клавиатуры, печатаются, дистиллируются, RIP-уются и т.п. Но кернинга для русских букв эти программы не видят. Чтобы увидели, приходится применять хак с подменой кодовой страницы (как это сделать смотрите здесь).
Наконец, Adobe Photoshop русские буквы видит, печатает и т.п., но кернинга для русских букв нет даже при включении хака с подменой кодовой страницы.

Использование русских Type 1 шрифтов в Word.

Microsoft Word, начиная с версии 97, очень требователен к правильности Type 1 шрифтов, например Word 2000/2002 имеет неприятную особенность при работе со шрифтами: при вводе символов, которые, по его мнению, отсутствуют в шрифте, он переключает шрифт вводимых символов на Times New Roman, что крайне неудобно. Приходится выделять введённый текст и оформлять его нужным шрифтом, а это потеря времени.
Но Microsoft Word может полноценно работать с PostScript Type 1 шрифтами, если эти шрифты имеют верные имена символов и некоторые другие параметры. Такие шрифты будут отображаться в списке шрифтов, вводиться с клавиатуры, печататься на PCL, PostScript и иных принтерах, правильно преобразовываться в PDF, обрабатываться программными RIP-ами для PostScript-файлов и т.д.

  1. Правильная кодировка символов в шрифте:
    Номер кода Название кода Номер кода Название кода Номер кода Название кода
    32 space 107 k 182 paragraph
    33 exclam 108 l 183 periodcentered
    34 quotedbl 109 m 184 afii10071
    35 numbersign 110 n 185 afii61352
    36 dollar 111 o 186 afii10101
    37 percent 112 p 187 guillemotright
    38 ampersand 113 q 188 afii10105
    39 quotesingle 114 r 189 afii10054
    40 parenleft 115 s 190 afii10102
    41 parenright/td> 116 t 191 afii10104
    42 asterisk 117 u 192 afii10017
    43 plus 118 v 193 afii10018
    44 comma 119 w 194 afii10019
    45 hyphen 120 x 195 afii10020
    46 period 121 y 196 afii10021
    47 slash 122 z 197 afii10022
    49 one 124 bar 199 afii10025
    50 two 125 braceright 200 afii10026
    51 three 126 asciitilde 201 afii10027
    52 four 127 -- N/A -- 202 afii10028
    53 five 128 afii10051 203 afii10029
    54 six 129 afii10052 204 afii10030
    55 seven 130 quotesinglbase 205 afii10031
    56 eight 131 afii10100 206 afii10032
    57 nine 132 quotedblbase 207 afii10033
    58 colon 133 ellipsis 208 afii10034
    59 semicolon 134 dagger 209 afii10035
    60 less 135 daggerdbl 210 afii10036
    61 equal 136 Euro 211 afii10037
    62 greater 137 perthousand 212 afii10038
    63 question 138 afii10058 213 afii10039
    64 at 139 guilsinglleft 214 afii10040
    65 A 140 afii10059 215 afii10041
    66 B 141 afii10061 216 afii10042
    67 C 142 afii10060 217 afii10043
    68 D 143 afii10145 218 afii10044
    69 E 144 afii10099 219 afii10045
    70 F 145 quoteleft 220 afii10046
    71 G 146 quoteright 221 afii10047
    72 H 147 quotedblleft 222 afii10048
    73 I 148 quotedblright 223 afii10049
    74 J 149 bullet 224 afii10065
    75 K 150 endash 225 afii10066
    76 L 151 emdash 226 afii10067
    77 M 152 -- N/A -- 227 afii10068
    78 N 153 trademark 228 afii10069
    79 O 154 afii10106 229 afii10070
    80 P 155 guilsinglright 230 afii10072
    81 Q 156 afii10107 231 afii10073
    82 R 157 afii10109 232 afii10074
    83 S 158 afii10108 233 afii10075
    84 T 159 afii10193 234 afii10076
    85 U 160 nbspace 235 afii10077
    86 V 161 afii10062 236 afii10078
    87 W 162 afii10110 237 afii10079
    88 X 163 afii10057 238 afii10080
    89 Y 164 currency 239 afii10081
    90 Z 165 afii10050 240 afii10082
    91 bracketleft 166 brokenbar 241 afii10083
    92 backslash 167 section 242 afii10084
    93 bracketright 168 afii10023 243 afii10085
    94 asciicircum 169 copyright 244 afii10086
    95 underscore 170 afii10053 245 afii10087
    96 grave 171 guillemotleft 246 afii10088
    97 a 172 logicalnot 247 afii10089
    98 b 173 sfthyphen 248 afii10090
    99 c 174 registered 249 afii10091
    100 d 175 afii10056 250 afii10092
    101 e 176 degree 251 afii10093
    102 f 177 plusminus 252 afii10094
    103 g 178 afii10055 253 afii10095
    104 h 179 afii10103 254 afii10096
    105 i 180 afii10098 255 afii10097
    106 j 181 mu    
  2. Здесь все имена символов стандартны. Лишь для дублирующих символов (неразрывного пробела и "мягкого" дефиса) приняты имена:
    160 nbspace
    173 sfthyphen

    Обычный пробел (код 32) называется space, дефис (код 45) - hyphen.
    Символы 127 и 152 в кодировке отсутствуют.

  3. Параметры INF-файла:
    CharacterSet (cyrillicreg.cs)
    Encoding (cyrillic.enc)
    Pi true
    PCLSymbolSet 9R
    WindowsCharSet 0 (основной вариант, см. выше) или 204 (альтернативный)
    WindowsFirstChar 32
    WindowsLastChar 255

    Замечание: Если в шрифте есть символы с кодами меньше 32, то параметр WindowsFirstChar надо установить равным наименьшему коду символа в шрифте.

  4. Параметры AFM-файла:
    CharacterSet Cyrillic
    EncodingScheme FontSpecific

    Замечание: EncodingScheme AdobeStandardCyrillic тоже вроде работает, но тщательно это не проверялось.

Впрочем, самостоятельно устанавливать эти параметры в шрифтах необязательно — для исправления русских Type 1 шрифтов есть программа Type1Cyr.

Для установки Type 1 шрифтов лучше использовать программу Adobe Type Manager. Без Adobe Type Manager, при установке шрифтов средствами Windows, значение параметра WindowsCharSet .INF-файла игнорируется, т.е. байт 0x55 создаваемого .PFM-файла всегда имеет нулевое значение, что в нашем случае нежелательно.

Type 1 шрифты следует устанавливать с помощью комбинации файлов .PFB + .AFM + .INF. Шрифты, установленные с помощью комбинации файлов .PFB + .PFM, не всегда работают правильно.

При соблюдении этих условий русские Type 1 шрифты обрабатываются правильно. Кроме кернинга — его Word для русских букв в Type 1 шрифтах не задействует, но при желании можно сделать так, чтобы Microsoft Word правильно обрабатывал кернинг в русских PostScript Type 1 шрифтах, но лучше без этого обойтись — при этом некоторые программы начинают работать со шрифтами неправильно.
Для того чтобы установить кернинг, примените хак с подменой кодовой страницы (как это сделать смотрите здесь).

О программе Type1Cyr
Назначение:

Программа предназначена для нормализации русских PostScript Type 1 шрифтов, чтобы они правильно отображались, вводились, печатались, дистиллировались, RIP-овались и т.д.

Программа исправляет следующие ошибки в русских PostScript Type 1 шрифтах:
  1. Неправильные имена символов
  2. Неправильные параметры AFM и INF-файлов, из-за которых шрифты работают так, как надо.
  3. Неверная идентификационная строка PFB-файла (%!PS-AdobeFont-1.0: ...), (что встречается у паратайповских шрифтов), из-за чего шрифты не видны в некоторых программах.

Программа также может устанавливать UniqueID (уникальный идентификатор) шрифта.

Следует подчеркнуть, что всю содержательную информацию шрифта: контуры символов (глифов), метрики, кернинг, хинты, композитные символы и т.д., - программа НЕ меняет. Все эти характеристики шрифта полностью сохраняются.

Замечание: Программа может использоваться для обработки шрифтов в иных кодировках (западноевропейской, восточноевропейской и т.п.), а также пиктографических шрифтов, если по каким-то причинам желательно, чтобы эти шрифты обрабатывались системой как русские шрифты.

Выполняемые программой действия:

Программа принудительно устанавливает в шрифте правильную кириллическую кодировку (точнее, правильные имена символов), переименовывая символы.

Позиции символов в шрифте при этом сохраняются (если они являются допустимыми в кириллической кодировке).

Программа также устанавливает параметры INF и AFM-файлов, необходимые для правильной работы операционной системы с русскими Type 1 шрифтами. Значение параметра WindowsCharSet INF-файла пользователь может выбирать, т.к. в разных случаях этот параметр должен быть разным.

Формат вызова:

Type1Cyr [имя-файла-шрифта] [режимы]

В имени файла шрифта можно указывать расширение, а можно не указывать. Оно всё равно игнорируется. Например, если Вы скажете Type1Cyr MYFONT, или Type1Cyr MYFONT.PFB, или даже Type1Cyr MYFONT.TXT, программа будет обрабатывать файлы MYFONT.PFB, MYFONT.AFM и MYFONT.INF.

Режимы программы таковы:
/E=число - задание кодовой страницы шрифта (параметра WindowsCharSet INF-файла). По умолчанию действует значение /E=0.
При использовании шрифта в Windows 95/98/ME надо указывать параметр /E=204 (или /W, см. ниже). Иначе шрифт операционной системой не будет считаться русским.
При использовании шрифта в Windows 2000/XP/2003 в большинстве случаев лучше режим /E не указывать (что соответствует /E=0). Лишь Microsoft Word и программа Adobe Table при этом работают плохо. Если шрифт будет использоваться в основном с Microsoft Word, может быть целесообразно задать параметр /E=204 (или /W).
Буква "Е" в названии режима /E - латинская (от слова Encoding).
//W - то же, что /E=204.
/U=число - задание уникального идентификатора (UniqueID) шрифта. Как правило, значение UniqueID - от 4000000 до 4999999 или 0.

Замечание: Adobe рекомендует, чтобы у всех Type 1 шрифтов в системе UniqueID был разный. Диапазон UniqueID от 4000000 до 4999999 выделен для шрифтов частного применения (личного, внутрикорпоративного и т.п.)

Ограничения программы:

1. Программа Type1Cyr написана под DOS, а потому не понимает длинных имён файлов (в частности, более 8 символов в имени шрифта).

2. При обработке шрифтов в кодировке AdobeStandardEncoding, содержащих композитные символы, определённые командой seac, в преобразованном шрифте некоторые композитные символы могут быть утеряны. Это проявляется, например, для паратайповских "западноевропейских" шрифтов (AcademyA, BalticaA и др.). Причина в том, что внутри шрифта для определения композитов используется команда seac, а она работает только для кодировки AdobeStandardEncoding. В подобных случаях надо загрузить шрифт в шрифтовой редактор типа FontLab, установив режим "Decompose all composite glyphs", и сразу сохранить шрифт. Сгенерированный таким образом шрифт программа Type1Cyr обработает нормально.

Использован материал статей В.Фигурнова.

Скачать программу Type1Cyr
Скачать программу Type1Cyr.exe
Нужен оригинальный шрифт?
Нет проблем - fontproblem@yandex.ru

eServer.ru :: Хостинг-оператор #1
Сомневаетесь в выборе хостинга? Хотите проверить, прежде чем платить? eServer.ru предоставляет Вам эту возможность! SSL, MySQL, SSI, PHP, PERL, C++, JSP, неограниченный трафик, домен бесплатно и многое другое.
Выберите нас, Вы не пожалеете об этом выборе! Узнать больше...
Hosted by uCoz