| Назад в раздел
 
 Квадраты из Офиса-97
Квадраты из 
Офиса-97| div.main {margin-left: 20pt; margin-right: 20pt} |  | Издательские системы — 
печать  |  Многим, 
очевидно, приходилось сталкиваться с квадратами или "зюквами", выходящими из 
принтера, в то время как Офис-97 нормально отображал на экране наш текст, 
набранный TTF-шрифтом (который, как утверждает Microsoft, на печать выводится 
точно так же, как выглядит на экране). И ничего не помогало: ни перестановка 
Офиса, ни замена шрифта. В чем же дело?Основная 
особенность файлов и идеологии Офиса-97, в первую очередь - Winword-97, - почти 
полный переход на кодировку Unicode, т.е. и в документах Word-97 текстовая часть 
представлена в Unicode, и в процессе выполнения программы - ввода и обработки 
текста - используется (здесь, конечно, необходима оговорка), по всей 
вероятности, исключительно Unicode. Впрочем, как и в предыдущих версиях Word, 
для нормальной работы с языком необходимо, чтобы в Word'е была его поддержка, 
независимо от юникодовости шрифта. 
 Что такое Unicode?
 
 Unicode - 
частичная реализация стандарта ISO 10646, совместим снизу вверх, т.е. первые 256 
символов UNICODE = Latin-1 (ISO 8859-1). В настоящее время распределено около 
29.000 позиций из 65.535 возможных.
 
 Шрифты. Требуются юникодовые шрифты, 
в которых буквы национальных языков имеют положенные им юникоды, а Windows'9x 
видит в шрифте соответствующий набор символов (charset).
 
 Национальные 
Postscript-шрифты нормально работают в Word-97 в Windows NT (под поддерживающей 
Unicode ATM/NT 4.0). Под Windows'9x и ATM/95 4.0 Postscript-шрифты в Word-97 не 
работали, пока недавно не был найден способ прописать в них национальный (в 
частности, русский) набор символов, что более или менее проблему решило. Шрифты, 
не имеющие соответствующего набора символов, - это, как правило, шрифты, имеющие 
только script western или же symbol encoding. Word-97 может, до некоторой 
степени, использовать желаемым образом и такие шрифты, но с многочисленными 
неудобствами и ограничениями. В частности, при переключении клавиатуры с 
английской на национальную (например, русскую) будет происходить переключение 
шрифта на тот, где нужный набор символов есть (обычно - Times New Roman). Вот 
еще некоторые особенности поведения в этих случаях:
 
 При использовании 
шрифта, имеющего только script western, должна быть установлена маркировка 
текста как английского. При этом не будут работать проверка русской орфографии и 
переносы (хотя если потом напечатанный текст промаркировать как русский, то даже 
проверка орфографии работает). Изменение шрифта на юникодовый приведет к потере 
"русскости". Изменение же шрифта с юникодовового на чисто western превратит 
русский и т.п. текст в "квадратики".
 
 Такого рода русский шрифт можно 
"юникодизировать" с помощью конвертеров.
 
 Шрифт, имеющий symbol encoding, 
вызывает несколько меньше проблем. И в этом случае не будут работать такие 
языковые функции, как проверка орфографии, а переносы будут производиться в 
произвольном месте слова. Изменение шрифта может превратить текст в "квадратики" 
(что, видимо, объясняется отсутствием в юникодовом шрифте диапазона 
U+F020...U+F0FF), хотя изменение из юникодового шрифта в symbol и даже 
последующий возврат шрифта проходит корректно (что, видимо, объясняется 
трансляцией "буквенных" юникодов через кодовую страницу в "пользовательские" 
юникоды шрифта symbol).
 
 Печать. Как выяснилось, в Word-97 правильный вид 
многоязычного текста на экране - еще не гарантия, что он будет правильно 
напечатан на принтере или послан по факсу. Собственно говоря, это - не ошибка 
Word-97, а неполноценность большинства (!) драйверов принтеров - юникодовые 
функции печати в них в той или иной мере неработоспособны. Хотя есть и 
исключения, например, встроенный в Windows'95 драйвер принтера HPLaserJet4L. 
Другие драйверы могут изображать при печати квадратики вместо нужных символов. В 
худшем случае не изображаются даже национальные буквы (русские, греческие и 
т.п.) из кодовых страниц, поддерживаемых и Windows, и Word-97. В лучшем - не 
изображаются символы, не входящие в стандартные для Windows наборы символов 
(charsets), в частности, псевдографика (входящая во все стандартные "большие" 
шрифты). К последнему, лучшему случаю относится драйвер для HPLaserJet 5-6, 
предлагаемый сейчас на сервере Hewlett-Packard, изображающий все, что может 
напечатать стандартными шрифтами Wordpad, но не все, что может извлечь из шрифта 
Word-97.
 
 Полностью решить проблему могут только разработчики драйверов, 
но некоторые частичные решения имеются и со стороны Word-97. Они предлагаются на 
сервере Microsoft в статье из базы знаний Q159418:
 
 Если установлен 
Word-97 Service Release 1 (SR-1), нужно добавить в системный реестр (Registry) 
следующий 
ключ:
 
 REGEDIT4
 
 [HKEY_CURRENT_USERSoftwareMicrosoftOffice8.0WordOptions]
 
 "NoWideTextPrinting"="1"
 
 Если 
установлен более ранний Word-97 (non-SR1), то системный реестр правится с 
использованием точного имени принтера из папки Printers, обозначенного в примере 
как Printer_name (надо отметить, что в русских версиях SR1 и SR2 этот метод тоже 
действует):
 
 REGEDIT4
 
 [HKEY_CURRENT_USERSoftwareMicrosoftOffice8.0WordPrinter_name]
 
 "Flags"="8192"
 
 В 
этом случае будут печататься символы из кодовых страниц, которые находятся на 
"пересечении" знаний Windows'95 и Word-97, т.е. не будет не только 
псевдографики, но и иврита и арабского, зато останутся кириллица и греческий, а 
также западно- и восточноевропейская латинская диакритика.
 
 Для некоторых 
видов принтеров Hewlett-Packard в статье приведены свои специфичные настройки, 
решающие (в какой мере?) проблему. В частности, вышеупомянутый HPLaserJet4L 
начинает все правильно печатать, только если установлена опция "Print TrueType 
as graphics".
 
 Наконец, если ничего из вышеуказанного не помогает, иногда 
может помочь радикальное средство: для всех (применяемых) юникодовых шрифтов с 
кириллицей недрогнувшей рукой вписать в WIN.INI в секцию FontSubstitutes строчки 
типа следующей:
 
 Font,0=Font,204
 
 Тогда придется распроститься с 
надеждой печатать этим шрифтом не только на иврите и арабском, но и по-немецки, 
по-французски и, видимо, по-гречески, но на русско-английском все будет 
напечатано правильно.
 
 Такой подробный материал на самом деле лишь 
приподнимает завесу тайны, охраняющую внутренности Office в частности и Windows 
в целом.
 
 |