Назад в раздел
Квадраты из Офиса-97
div.main {margin-left: 20pt; margin-right: 20pt} |
Издательские системы —
печать | Квадраты из
Офиса-97
Многим,
очевидно, приходилось сталкиваться с квадратами или "зюквами", выходящими из
принтера, в то время как Офис-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
в целом.
|