ПК-ностальгия
HOME
Железо
Программы
Оборудование
Статьи и публикации
Фототаблица
Ссылки
Почта
Гостевая
ПОИСК
Новости Яndex
О сайте

Этот сайт предназначен, прежде всего, людям, ностальгирующим по ушедшим РУССКОМУ СЛОВУ, Windows 3.1, ФОТОНУ, процессорам 486SX и иже с ними.
Конечно, времена должны идти вперед, но почему они обязательно должны уходить?

StuhlbergR 2007-2008 ©
Кириллица на LaserJet: проблемы производителей и решения пользователей
(окончание)

МОДИФИКАЦИЯ ПРОГРАММ
Решая конкретную задачу - обеспечение работы пользователей в сети, работающих с пакетами Word, Ventura, Windows 2.0 и 3.0, которые "делили" один серверный принтер HP LaserJet II, - мы обнаружили, что 80-Мбайт жесткий диск сервера нашего заказчика буквально забит шрифтами. В этом случае проблема не может быть решена никакой перекодировкой - необходима модификация программы.

После некоторых размышлений мы решили взять за основу кодировку фирмы Rank Xerox, предположив, что Ventura - наиболее трудно модифицируемая программа. Остальные программы с большими или меньшими усилиями удалось заставить понимать способ расположения символов и получать информацию о ширинах. О том, как это сделать, и пойдет речь ниже.

Ventura Publisher 2.0
Процедура добавления шрифтов к системе Ventura достаточно подробно описана в документации к пакету, так что остановимся на ней только вкратце (использование "родной" кодировки исключает необходимость внесения корректив). Вначале шрифт обрабатывается утилитой HPLTOVFM, которая создает файл текстового формата с расширением VFM (Ventura Font Metric), содержащий информацию о ширинах символов и других характеристиках шрифта. Затем любым текстовым редактором создается LST-файл, содержащий список VFM-файлов, подлежащих обработке, и наконец, LST-файл подвергается обработке утилитой VFMTOWID, которая создает WID-файл, непосредственно используемый программой Ventura. Единственное ограничение, несоблюдение которого приводит к некорректным результатам, заключается в порядке перечисления шрифтов в LST-файле. Шрифты должны быть сгруппированы по гарнитурам и следовать в порядке возрастания кеглей, а выделения должны идти в той же последовательности, что и в меню "Установить шрифт" системы Ventura.

В целом же двухступенчатая процедура добавления шрифта достаточно гибка, а возможность редактировать VFM-файл позволяет реализовать такую, например, возможность, как одновременное использование шрифтов с символами кириллицы и символами национальных алфавитов типа , и т.д.

Windows 2.*, 3.*
Система Windows оказалась самым крепким орешком из модифицируемых нами программ. Дело в том, что в утилите CONTROL PANEL из группы Main системы Windows принята одноуровневая процедура добавления шрифтов без промежуточных этапов и возможности "легального" вмешательства в этот процесс (см. "Мир ПК", №9/91, с. 88). Такая высокая степень автоматизации облегчает работу пользователя, но заставляет быть особо внимательным, в частности, к области HEADER шрифта. Она начинается последовательностью [ESC]s#W (где # - длина области HEADER) и содержит информацию о типе, размере, выделении и других характеристиках. И если при работе с той же системой Ventura область HEADER можно просто игнорировать, а правильные характеристики шрифта задать в VFM-файле текстовым редактором, то в Windows возможности редактирования этих параметров весьма ограничены, особенно в версии 2.*. Менять HEADER позволяют практически все редакторы шрифтов, работающие с форматом PCL (например, FontGenV), или же это можно делать непосредственно, редактируя ESC-последовательность в коде шрифта. К сожалению, расшифровка формата области HEADER дается только в техническом описании (Technical Reference) языка PCL, и ее нет в руководстве пользователя принтера LaserJet.

Но все же главная проблема заключается в необходимости использовать шрифт с кодировкой, отличающейся от кодировки экранных шрифтов. Чтобы обеспечить требуемую перекодировку при выдаче на принтер, приходится исправлять код драйвера принтера HPPCL.DRV. В версии системы Windows, русифицированной специалистами СП "Диалог", таблица перекодировки легко обнаруживается в этом файле и исправить ее не составляет больших проблем. Однако кроме этого необходимо перекодировать и файлы ширин PFM (Printer Font Metric), которые автоматически создаются при добавлении шрифтов с помощью утилиты CONTROL PANEL, причем каждому шрифту соответствут свой PFM-файл, находящийся в том же каталоге. Мнемоника названий PFM-файлов обычно достаточно прозрачна, но для однозначной индетификации необходимо просмотреть файл WIN.INI. В его разделе [HPPCL,{PORT_NAME}], где {PORT_NAME} - имя порта принтера, указано явное соответствие файлов шрифта и PFM-файлов. В таблице ширин в PFM-файле для Windows 3.0 под ширину одного символа отводится 2 байта, из которых реально используется только один (так как маловероятно появление PCL-шрифтов размером больше 256 пунктов). Для перестановки ширин в соответствии с OEM-кодировкой пришлось написать отдельную программу, поскольку переставлять коды вручную - занятие очень трудоемкое, а никакие стандартные утилиты для этой цели не годятся.

Добавленные таким образом PCL-шрифты оказалось возможным использовать в большинстве прикладных пакетов, работающих под Windows (таких, как Write, Word for Windows, PageMaker и т.д.). Заметим только, что поскольку шрифты формата PCL являются аппаратнозависимыми, то они появляются в списке шрифтов в меню только при выборе из пакета принтера HP LaserJet (или при указании его как принтера по умолчанию в утилите CONTROL PANEL).

Еще одна интересная возможность использовать PCL-шрифты имеется при работе с программой Adobe Type Manager. Если в меню утилиты ATM CONTROL PANEL включить опцию "Use ... Bitmap Fonts", а имена PCL-шрифтов сделать совпадающими с именами шрифтов Adobe Type 1 (при условии, конечно, что совпадают их гарнитуры), то вывод на печать будет производиться PCL-шрифтом - при наличии шрифта требуемой гарнитуры, кегля и выделения, а в противном случае - графическим способом при помощи ATM. Описанный метод дает возможность сочетать большую скорость работы PCL-шрифтов (особенно если они уже были предварительно загружены в принтер), которые используются обычно для наиболее распространенных шрифтов, с большими возможностями медленного драйвера ATM, позволяющего достаточно свободно варьировать типоразмеры символов.

MS Word 4.0, 5.0
С пакетом Word все было достаточно просто - вмешательство в интерфейс принтера осуществляется на уровне создания PRD-файла (PRinter Description). Этот файл преобразуется из бинарного вида в текстовый и обратно утилитой MAKEPRD. Для подключения шрифта с нестандартной (для системы Word) кодировкой символов предусмотрено использование таблицы трансляции, описывающей раскладку символов по кодам в конкретном шрифте. Эта таблица начинается указателем {T# и заканчивается указателем }T, где # - номер таблицы, так как их может быть несколько. Однако (здесь параллель с Windows), Word использует таблицу трансляции только при печати, а в процессе верстки берет ширины символов из таблицы ширин, руководствуясь их стандартным расположением. Таблица ширин в PRD-файле аналогично задается указателями {W# ... }W. Для обеспечения правильной верстки необходимо сначала определить ширины символов в шрифте с помощью какой-нибудь стандартной утилиты и затем расположить их в таблице ширин в соответствии со стандартной раскладкой, а не с реальным расположением символов по кодам в принтерном шрифте. Задача простая, рутинная, но легко алгоритмизируется, поэтому может выполняться как вручную, так и с помощью элементарной программы.

Хорошей иллюстрацией данного способа является пакет "РусскоеСлово", PRD-файлы которого могут служить отличным примером для тех, кто хочет писать их самостоятельно.

WordPerfect 5.1
Текстовый процессор WordPerfect - широко распространенная на Западе программа, приспособленная для работы в многоязычной среде самой фирмой, что обеспечивает полную гармонию разных языков в одном тексте. Модули для конкретных языков поставляются отдельно и за отдельную плату, но все же они реализуют переносы, контроль орфографии и экранно-клавиатурное взаимодействие.

Проблемы использования шрифтов с разными раскладками кодов в пакете WordPerfect просто нет, так как при добавлении нового шрифта (с помощью утилиты PTR это делается очень легко) можно в пункте Map, сослаться на любую из существующих раскладок или здесь же создать новую.

Так что WordPerfect либо не участвовал в "войне" кодировок, либо победил.


ОБ АВТОРАХ
Роман Викторович Никишов -
технический директор МП "Гестион";
Виктор Валерьевич Кузин -
ведущий программист МП "Гестион".

[1] [2]

Статья была опубликована в журнале "Мир ПК" №6 1992 г.


Программы

Большинство предоставленного здесь материала является цитированием со старых номеров компьютерных журналов, таких, как "Мир ПК" или "Весь Компьютерный Мир". К сожалению, все мои попытки связаться с этими изданиями по поводу вопроса о цитировании были безуспешны. Издания упорно хранили молчание. Что я разрешил себе расценивать как знак согласия, указывая, тем не менее, повсюду как выходные данные издания (с работающей ссылкой на Интернет-представительство), так и автора публикации. Тем более, что, в силу срока давности этих публикаций, вряд ли материал можно рассматривать как коммерческий или рекламный, пусть даже названия фирм здесь и присутствуют (уж без этого никуда). Ежели появятся какие претензии по оному поводу, прошу издания связаться со мной

Райво Штулберг


Rambler's Top100

Рейтинг@Mail.ru Портал HotINDEX: знакомства, товары, хостинг, создание сайта, Интернет-магазин, развлечения, анекдоты, юмор, эротика, погода, курсы валют и многое другое! Сайт Татьяны Полукаровой Яндекс цитирования Каталог Ресурсов Интернет
Белый каталог сайтов Литературное ДАО Практическая педагогика. Авторский сайт Штулберг Надежды Васильевны Страничка о какао

Автор обращает внимание на то, что никакой представленный здесь материал не служит рекламным целям ни фирм,ни их продкутам, а носит сугубо информационно-образовательный характер

Hosted by uCoz