Rambler's Top100 Service

  Radius Group
СКАЧАЙТЕ БЕСПЛАТНО

ПУТЕВОДИТЕЛЬ

по всем нашим сайтам. Уникальная программа


РАЗДЕЛЫ ПОРТАЛА
  Главная страница
Бесплатная документация
Форумы
ГОРЯЧАЯ НОВОСТЬ
 

23 Mar (00:01)
Поиск в Google
Простые рекомендации от SecurityFocus

Архив...
ЛАБОРАТОРИЯ
  Место где решаются Ваши проблемы

Сейчас в Лаборатории
Компаний: 1656
Экспертов: 693

Вход
для пользователей
для экспертов

Как работает Лаборатория?
НОВОСТИ КОМПАНИЙ
 

9 Feb (00:04)
Кто боится Liebert UPStation?


15 Dec (00:04)
Система Online-control.net - три года успешной работы!

26 May (18:12)
Семинар "Создание эффективных веб-сайтов"

29 Apr (00:08)
Интернет-сайт компании: удобное средство для заработка денег или дополнительные накладные расходы?

15 Apr (00:26)
Три источника, три составные части Intel Centrino

Архив...
СТАТЬИ И ОБЗОРЫ
 

Октябрьские исправления Microsoft влияют на браузер IE
Статья

Microsoft торопится с Longhorn и удаляет WinFS

Windows XP SP2 Released to Manufacturing

Потрошим файлы PDF

Компьютерные законы Мерфи

Архив...
Назад НаверхВниз
Советуют профессионалы! Совет: Стараясь о счастье других, мы находим свое собственное. Платон

.
NEWS.ITUNION.RU НазадНаверхВниз

Печать на принтере HP из DOS


Еще несколько лет назад обозначенная в заголовке проблема решалась очень просто. С принтерами HP поставлялся специальный драйвер DOS для операционных систем Windows, который, кроме прочего, обеспечивал правильную установку кодовой страницы (на жаргоне это называется русификацией). С некоторых пор с лазерными и струйными принтерами HP драйверы для DOS не поставляются, но у отдельных пользователей еще остаются унаследованные приложения MS-DOS, применяемые для вывода на печать. Обсуждение данного вопроса на форумах и конференциях обычно заканчиваются рекомендациями по применению какой-нибудь определенной программы или некоторой последовательности команд управления принтером. Вряд ли мы сможем предложить рекомендации для каждой модели принтера и для каждой унаследованной программы, но попробуем дать общие рекомендации, чтобы сделать осмысленным процесс поиска решения в конкретной ситуации.

Прежде всего отметим, что рассматривается вывод на печать в режиме эмуляции DOS (так называемый режим командной строки) некоторой версии Windows, поскольку маловероятно, что до сих пор еще где-нибудь работают в настоящей операционной системе MS-DOS (наверное, нет никакого смысла подключать к такой системе современный принтер HP). Не все Windows одинаковы. С одной стороны мы имеем семейство Windows 95: Windows 95/98/98 SE, а с другой - семейство NT: Windows NT/2000/XP/2003. С точки зрения доступа к параллельному порту в первом случае унаследованное приложение никак не ограничено, а в семействе NT приложение не может работать с портом напрямую и ему придется обращаться через драйвер виртуального устройства VxD. Проще говоря, в первом случае Windows полностью переключается в режим эмуляции, а во втором - сохраняет контроль над обращением приложения к устройствам. Ясно, что нельзя смешивать драйверы DOS, предназначенный для разных семейств Windows. Кроме того, если мы предполагаем какие-либо дополнительные действия (об этом см. ниже), то лучше использовать семейство Windows 95, где можно полностью управлять выводом в порт и не думать о возможных преобразованиях данных в виртуальном драйвере VxD. Остается еще система Windows ME, которая хотя и относится к семейству Windows 95/98/98 SE, в некоторой степени управляет действиями драйверов устройств, но все же позволяет работать из DOS при наличии "правильного" драйвера.

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

Драйвер для DOS появляется в системе Windows, если во время установки обычного драйвера положительно ответить на вопрос о печати из приложений MS-DOS. Драйвер DOS устанавливается отдельно и независимо от драйвера Windows, причем доступ к параметрам его настройки проводится так же, как и к драйверу Windows. Например, в папке Принтеры появятся два значка: DOS HP LaserJet 1000 и HP LaserJet 1000. С современными моделями принтеров драйвер для DOS не поставляется (в классе экономичных устройств последним был принтер LJ 1100). Поэтому возникает вопрос: "Нельзя ли использовать драйвер от другого устройства или вообще обойтись без драйвера?". Здесь нужно разобраться с тем, что делает драйвер принтера и, в частности, с обязанностями драйвера DOS.

Драйвер DOS обеспечивает настройку режима работы принтера, преобразование выходного потока приложения в последовательность команд языка описания страниц PCL и языка описания заданий PJL, а при необходимости дополнительно выполняет загрузку нужного шрифта.

Согласование драйвера и принтера основано на используемой версии языка PCL (язык заданий PJL, является частью этого стандарта, поэтому отдельно не отмечен в технической документации и совпадает с определенной версией PCL по определению). Чтобы принтер смог понять драйвер, оба они должны использовать одинаковую версию языка описания страниц PCL. Если исходить из реальностей, то нужно просто проверить настройку принтера на язык PCL 5E, поскольку современные принтеры используют PCL 6, который из-за своей модульной структурой не очень хорошо согласуется с PCL5. Язык PCL5 появился в 1990 году в принтерах HP LaserJet III, но в популярном в свое время HP LaserJet 4 был заменен новым вариантом PCL5E. Все современные принтеры HP поддерживают не только язык PCL 6, но и режим совместимости с PCL5E, поэтому можно использовать любой старый драйвер для DOS, хотя в современной модели принтера придется вручную настроить устройство на режим совместимости с языком PCL5E. Для настройки можно использовать панель управления принтера (если таковая присутствует), либо выполнить настройку через порт подключения, отправив туда определенный командный файл. Сделать это надо еще до установки драйвера DOS. Причем во время этой установки необходимо отключить принтера от сети или от параллельного порта, иначе во время своей установки драйвер проверит присутствующую модель принтера и поймет, что его "обманывают". Заметим, что заменять можно не только драйвером лазерного принтера, но и пользоваться драйверами DOS для струйных принтеров. Верно и обратное утверждение, но при замене драйвера HP DeskJet DOS драйвером HP LaserJet DOS обычно пропадает возможность вывода в цвете.

При замене драйвера DOS рекомендуется использовать версию от последнего из доступных принтеров. Обычно, чем больше номер модели принтера, тем позже выпущена эта модель (например, HP DeskJet 870C выпущен после HP DeskJet 550C, поэтому драйвер от первого из принтеров предпочтительнее). Но не следует выбирать на замену драйвер, который выпущен позже самого принтера (для нашего случая это неактуально, поскольку мы собираемся печатать на современном принтере HP). Некоторые разработчики программного обеспечения предоставляют собственные драйверы для печати в DOS на принтерах HP (для нас это тоже неважно, поскольку предполагается отсутствие каких-либо контактов с изготовителем унаследованной программы).

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

Некоторые программы для нашего с вами "удобства" сами реализуют функции драйвера DOS, направляя данные непосредственно в параллельный порт, сопроводив их некоторой управляющей информацией на языке PCL (наверное, это будет версия PCL5 или PCL5E, если только не используется программа 80-х годов прошлого века). В этом случае драйвер DOS устанавливать не нужно, но при загрузке компьютера следует запустить командный файл, настраивающий принтер на требования программы. Что будет в этом файле, зависит от конкретной программы.

Основные команды языка PCL: www.hp.com/cposupport/printers/support_doc/bpl05272.html .

Основные директивы языка PJL: www.hp.com/cposupport/printers/support_doc/bpl01965.html .

Возможно, приведенные выше рекомендации помогли запустить вывод на принтер, но получился странный результат - вместо символов русского языка печатаются какие-то закорючки (точнее, экзотические символы языков стран Восточной Европы). В этом случае нами придется решать проблему с русификацией. Любой современный принтер, если только он не куплен в подворотне, имеет встроенные шрифты с символами русского языка. Более того, такой принтер по умолчанию уже настроен на вывод в русской кодировке (обычно это называют аппаратной русификацией). Начиная с Windows 95, шрифты TTF стали расширенными, т.е. в одном шрифтовом файле находятся символы не двух языков (английский и русский, в целом дающие таблицу из 256 символов), а символы языков некоторого региона (для "русского" шрифта TTF - это английский, русский, турецкий, языки Балтии, стран Восточной Европы и т.д., в целом от 500 до 1000 символов). Чтобы вывод на печать не искажался, необходимо правильно настроить смещение в расширенном шрифте TTF. Для принтера это означает настройку на определенную кодовую страницу, т.е. команда SYM SET языка PCL должна установить значение PC866CYR для печати из командной строки DOS. Если же принтер не имеет встроенного "русского" шрифта (что маловероятно), придется загрузить его в принтер командой языка PCL или одной из многочисленных утилит "русификации" (например, DOSPRN - dvtb.amur.ru/~dosprn , Winprint - www.port.obninsk.ru/util.htm, "фирменной" dl5.exe на hp.ru или установить резидентный драйвер ARUS Baltica для аппаратно нерусифицированных струйных принтеров DeskJet 400, 420, 610 - web.spbstu.ru/peripheral/advices/DosCyr.zip). Заметим, что обычно перед "русификацией" нужно установить "английский" драйвер принтера, который позволит направить нужные команды в устройство.

Если принтер не имеет панели управления, то установка нужной кодовой страницы выполняется из командной строки DOS, причем сделать ее надо до вывода на принтер любого задания на печать. Посмотрим, как создать такой файл настройки. В командной строке DOS введите edit symset - откроется окно текстового редактора DOS для формируемого нами файла Symset. Нажмите и отпустите комбинацию клавиш CTRL/P, затем нажмите ESC. В окне редактора появится символ стрелки влево, указывающий на ввод управляющего символа в ESC-последовательности. Так в редакторе DOS вводится символ ESC. Введите в файл следующие команды (ESC показан буквами Ec):

Ec%-12345X@PJL DEFAULT LPARM:PCL SYMSET=PC866CYR Ec%-12345X

Нажмите ALT/F/P, затем ENTER. Этим набранные нами команды будут оправлены в принтер. Нажмите ALT/F/X, чтобы закрыть текстовый редактор DOS. Сам файл очень прост - сначала объявляется задание на печать с номером 12345X, затем кодировка PC866CYR устанавливается по умолчанию для любого задания на печать, а во второй строке задание 12345X закрывается. Заметим, что для некоторых принтеров, не имеющих панели управления, предоставляется такая панель, реализованная программно, в виде приложения MS-DOS, например для струйного DJ1220c - это HP Deskjet Control Panel for DOS. Заметим, что Deskjet Control Panel не заменяет собой драйвер для DOS, а используется совместно с ним.

Еще несколько советов для решения проблем с печатью из командной строки DOS:

1. Удалите на параллельном порту LPT дополнительные устройства (например, к этому порты принтер подключается через сканер). Выбор конкретного устройства для направления выводимых на печать данных происходит по обратным сигналам из порта, которые могут неправильно восприниматься драйвером.

2. Установите однонаправленный режим передачи информации в параллельном порту (двунаправленный режим может сбить с толку драйвер).

3. Удалите в Windows назначение на параллельный порт драйверов других принтеров, оставив только драйвер принтера для режима DOS.

4. Если используется программа загрузки в принтер русского шрифта, файл TTF этого шрифта лучше поместить в каталог размещения программы.

5. Попробуйте изменить в BIOS режим работы параллельного порта (ECP, EPP и т.д.).

6. Чтобы проверить возможность печати из окна DOS, попробуйте сначала провести вывод на печать в режиме полной эмуляции DOS системами семейства Windows 95. Для этого перезагрузите компьютер и выберите режим MS-DOS. Возможно, проблема связана не с принтером, а с совместной работой окна командной строки DOS и одного из приложений или служб Windows. Иногда выводу из DOS препятствует установка в среде Windows управляющих программ HP, скажем LaserJet Status Window или HP LaserJet Toolbox.

7. Попробуйте изменить параметры драйвера DOS и в частности установить формат спулинга страниц в RAW (необрабатываемый), отключить двунаправленный обмен (Bidirectional Support), не проверять состояние порта при спулинге заданий на печать в режиме MS-DOS и т.д. Для этого в окне принтеров щелкните правой кнопкой мыши значок драйвера печати для режима DOS и выберите в контекстном меню пункт Свойства. Здесь же можно переназначить в файл вывод на принтер.

8. Проведите простую проверку непосредственного вывода данных в порт принтера, выполнив в окне DOS команду copy autoexec.bat lpt1 или dir > lpt1, где LPT1 - номер используемого порта.

В заключение, расскажем о радикальном способе вывода данных из унаследованного приложения. Будем исходить из того, что разбираться драйверами DOS нет времени и удалось убедить начальство в будущем заботиться о техническом сопровождении приобретаемых программ. Если позволяет унаследованная программа, то выполняем печать в файл. Иначе устанавливаем для режима DOS простенький текстовый драйвер (например, для матричного принтера, но только не для лазерного, чтобы потом не удалять команды управления языка PCL) и назначаем режим вывода в файл. Полученный файл открываем в текстовом редакторе Word в режиме документа DOS. Проводим необходимые преобразования в удобочитаемый вид (скажем с помощью макроса) и без каких-либо проблем выводим на печать в среде Windows.

Иногда удается заставить принтер печатать из командной строки DOS, даже если это опровергается службой технической поддержки HP. Обычно специалисты исходят из того, что необходим "русскоязычный драйвер DOS", хотя все, конечно, зависит от унаследованной программы.

Поиск драйверов рекомендуем начать с адреса www.support.hp.ru/drivers .

Полная лента новостей NEWS.ITUNION.RU

Вы можете подписаться на ежедневную
бесплатную рассылку IT-новостей:
Email
 

....
  Site DESIGN by MIRRON (C) 2000-2001 Rambler's TOP100