IZONE - http://www.izcity.com/ - бесплатный софт, вэб-сервисы, ресурсы для раскрутки, свежие номера журнала "Internet Zone".

Утилита Winprn

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

Чем активнее работники Microsoft занимаются программированием, тем чаще выпускаются новые версии, весьма популярной, операционной системы Windows. Сегодня Windows является стандартом de-facto для большинства организаций и предприятий. Это и понятно – никогда ранее сеть ни настраивалась так просто. К сожалению, прогресс в Microsoft несколько отличается от нашего отечественного прогресса. Эксплуатация Windows предполагает и эксплуатацию Windows-программ, что, в принципе, логично. Однако еще очень часто встречается необходимость в использовании DOS-программ. Вспомните знаменитую UUPC. Я очень рад за вас, если вы действительно «вспомнили» эту программу, гораздо хуже, если вы вынуждены каждый день запускать ее. Я искренне вам сожалею. Миллионы писем, сегодня, отправляется в DOS-кодировке, подготовленные в Лексиконе и никто не беспокоится о том, сможет ли адресат нормально распечатать, при необходимости, всю эту писанину.

С развитием Windows многие производители печатающих устройств просто не считают нужным обеспечивать для своих детищ совместимость с DOS, а уж про совместимость с русскими буквами DOS и говорить не приходится. На такую роскошь сейчас способны только очень редкие, как правило, не самые известные производители. Любая совместимость, в каком бы виде ее ни пытались обеспечить, стоит определенных денег. Выбрав путь по уменьшению себестоимости, производители принтеров просто закрывают глаза на некоторые недочеты и проблемы совместимости, добиваясь тем самым весьма приемлемой цены. Многих пользователей, забывших про DOS и считающих, что DOS - убежище для программистов и чайников, такая ситуация вполне устраивает. И все же, печатать из DOS надо, и надо так часто, что я просто представить себе не мог, пока превратности судьбы не занесли меня на должность инженера-программиста в телефонную связь. Промучивших пару месяцев, импортируя из DOS в Windows на дню добрый десяток файлов, я понял – надо что-то делать. Так дальше жить нельзя.

Честно говоря, я всегда считал технику HP самой лучшей, однако, столкнувшись с лазерным принтером HP 6L, я был несколько разочарован. Странное поведение драйверов под Windows 95 (что само по себе впечатляет), проблема со шрифтами (понятное дело - кириллическими), непредсказуемость печати с компьютеров, на которых установлены различные версии Windows, все это омрачало мою работу. Вот хоть ты тресни, но внешний вид документа, отправленного на печать из Windows 2000, отличается от аналогичного документа, отправленного из Windows 95. Причину проблемы я установить так и не смог, может быть это левые или кривые драйверы, может быть проблема оборудования или программы, - не знаю. По-правде, мне этим и заниматься-то некогда, нужно печатать. Ну а печать из DOS-программы по сети (сеть поддерживается Windows) является просто неразрешимой операцией. И не рассказывайте мне про возможность перенаправить LPT-порт на сетевой принтер – не работает. Точнее сказать, работает, но сетевой принтер существует под Windows и печатает в кодировке Windows, а драйверы для DOS загружать в среде Windows нельзя – замкнутый круг.

«Что же делать?» – спросите вы, - «как быть?». Решение – есть! Существует маленькая программа, созданная ООО «Внедрение компьютерных технологий», под названием Winprn. Это консольная утилита, управляемая из командной строки Windows, с легкостью справляется со всеми задачами современной печати из DOS-программ. Параметров командной строки не много и разобраться с ними не сложно. Начнем по-порядку.

Программу Winprn можно использовать в среде Windows 95/98/2000, на платформе NT и ME я не проверял, но подозреваю, что и там проблем не будет. Для получения короткой справки по ключам Winprn, запустите ее с ключом /?

Чтобы указать программы файл, который требуется распечатать, используете ключ /t:

Например, для печати файла read.txt, запустите печать следующей строкой winprn.exe /t:read.txt. Желательно, чтобы сама winprn.exe находилась в том же каталоге, что и документ, или в каталоге, который определен в переменной PATH. Кстати, для Windows 95/98 наиболее удобно использовать каталог d:\папка_системы\command. Этот каталог автоматически просматривается системой всякий раз, при запуске программ. Этого уже достаточно, чтобы начать работу с утилитой. Печать будет выполняться на том принтере, который установлен в Windows как принтер «по-умолчанию». Для более детальной настройки печати применяются другие следующие ключи.

Ключ используется для авторазбиения текста на страницы по горизонтали. Данный ключ обычно применяется в том случае, если текст не умещается в ширину на одной странице. При указании данного ключа текст будет автоматически разбит и правильно напечатан. Ключ /а, обычно, используется совместно с другими параметрами Winprn, которые записаны в файле win.ini, об этих и других параметрах программы, которые записываются в файле конфигурации Windows, разговор еще впереди.

Ключ /d:колич_симвлов указывает количество символов на странице выбранной ориентации (обратите внимание на ориентацию, ключ /l). При помощи этого ключа можно реализовать три режима печати: обычный шрифт (указывается количество символов), сжатый шрифт (указывается количество символов, меньшее, чем для обычного шрифта) и авто (ключ не указывается совсем и текст автоматически растягивается на всю ширину страницы). Конкретные цифры количества символов зависят от используемого шрифта и принтера. В подавляющем большинстве случаев использовать ключ /d: ни к чему, но в случае необходимости всегда можно ограничить ширину текста на странице.

Ключ /с:число задает количество копий документа.

Ключ /l задает альбомную печать, по умолчанию включена книжная. Иными словами, вы можете печатать вдоль длинной стороны листа, просто поставив ключ /l. Проблем не должно возникнуть при использовании шрифтов типа True Type и, напротив, таковые вполне возможны при использовании встроенного (принтерного) шрифта. Более подробно о шрифтах и их использовании читайте ниже.

Для печати номеров страниц используйте ключ /n,номер выводится в конце страницы посередине.

Для разбивки текста на страницы по горизонтали укажите ключ /w:число_страниц. Обратите внимание, текст разбивается не вдоль до конца, как мы это привыкли видеть, а по-горизонтали, то есть в ширину. Шрифт увеличивается, при необходимости. Эта функция может быть полезна для распечатки таблиц, которые потом склеиваются (или печатаются на широком принтере) и заполняются от руки. Да, впрочем, мало ли какие причины могут возникнуть.

Следующие два ключа предназначены для формирования шапки, повторяющей на каждой странице. Указав в тексте документа нужные строки специальными маркерами и задействовав ключи /m и /b, вы с легкостью добьетесь желаемого результата. Понятно, что эта функция особенно полезна при печати длинных таблиц, но можно найти и другое применение. В качестве метки можно использовать любой символ, который, в принципе, не встречается в тесте, или еще точнее – не встречается в начале или в конце строк документа. В чем разница между началом строки и ее концом? Оказывается, ключ /m ищет маркер вначале строки, а ключ /b – в конце. Какой именно ключ применять – решать вам, лично мне удобнее использовать концевые маркеры, потому что это не нарушает внешний вид текста, но это скорее консерватизм и старческое кряхтение, чем конструктивный подход к делу. В любом случае, поле для деятельности у вас есть. Ниже приведен пример текста с маркерами:

_____________________________________@

№ Дата Ф.И.О @

_____________________________________@

1 15.02.01 Петров

2 14.02.01 Иванов

……….

Я в качестве маркера использую «собаку» (как известно: собака @ рознь), и устанавливаю его в конце строк, которые должны повторяться. Чтобы распечатать данный текст (пусть файл называется text.txt) используйте команду d:\winprn.exe /b:@ /t:text.txt. Первые три строки будут напечатаны на каждой странице. Удобно, что и ни говори!

Последние два ключа применяются с информационными целями. При помощи ключа getfonts (используется без слеша) можно получить список всех доступных шрифтов на данном компьютере. Список записывается в файл fonts.txt, который появляется в том каталоге, в котором находится winprn.exe. Данный список можно использовать дл определения номера шрифта, который указывается в win.ini, в параметрах winprn.

Ключ getprinters (применяется без слеша) позволяет получить файл printers.txt со списком доступных принтеров (сетевой принтер должен быть правильно установлен в системе). В дальнейшем этот список, возможно, можно будет применять для указания принтера, на который будет осуществляться печать, а пока его можно только посмотреть.

На этом описание ключей закончено, их не так много и некоторые из них могут вам не потребоваться. Это еще раз подтверждает тот факт, что маленький размер не означает мало возможностей.

Любая уважающая себя Windows-программа (а winprn таковой является) записывает свои параметры в специальные файлы конфигурации или в реестр Windows. Последний вариант не подходит, потому что параметры пользователь может (и должен) изменять вручную. Загонять их в запутанный реестр опасно – вдруг неподготовленный пользователь исправит или изменит что-то не то. Конечно, неправильные и необдуманные действия по редактированию файла win.ini (а именно в этом файле хранятся настройки Winprn) могут привести к каким-либо негативным последствиям, но все же это не так критично как реестр. Кстати, и в Windows NT, и в Windows 2000 есть файл win.ini – он используется для обеспечения совместимости с устаревшими программами. Итак, ищите параметры Winprn в файле win.ini, который располагается в папке системы, в разделе WinPrn. Если вы долго искали, но ничего не нашли, то просто запустит winprn.exe без параметров и ищите снова, они обязательно там появятся.

Скорее всего, секция WinPrn будет выглядеть приблизительно так:

[WinPrn]

SymbolsInPortrait=0

SymbolsInLandscape=0

ConvertToAnsi=0

FontNumber=

FontSize=12

CheckEndPages=0

Перед тем, как править win.ini, рекомендуется сделать его резервную копию.

Параметры SymbolsInPortrait и SymbolsInLandscape указывают количество символов в строке при, соответственно, книжной и альбомной ориентации листа. Если эти параметры выставлены как нулевые, то winprn масштабирует выводимый текст по наидлиннейшей строке текста. Ключ /d, если он используется, перекрывается данные параметры, и для печати будет использоваться значения ключа.

Если SymbolsInPortrait и SymbolsInLandscape нулевые и используется ключ /a, то ширина страницы для книжной ориентации будет 128 символов, а для альбомной – 192. Колонки печатаются последовательно. Если ключ /a не используется, то ширина текста рассчитывается как длина наибольшей строки, дленная на количество колонок. Число колонок задается в ключе /w, по умолчанию используется одна колонка, иными словами, текст растягивается на всю ширину страницы.

Если SymbolsInPortrait и SymbolsInLandscape ненулевые, а авторазбиение включено (ключ /a), то ширина страницы берется из соответствующих параметров и текст разбивается на колонки с указанной шириной. Число колонок определяется автоматически, колонки будут распечатаны последовательно, отдельно на каждом листе.

Если SymbolsInPortrait и SymbolsInLandscape ненулевые, а авторазбиение выключено (ключ /a не используется), то ширина страницы берется из соответствующих параметров и текст разбивается на колонки с указанной шириной. Печатается заданное число колонок (ключ /w), оставшаяся часть текста игнорируется.

На первый взгляд использование параметров SymbolsInPortrait и SymbolsInLandscape и ключа /a несколько запутанно, но это только вначале, постепенно вы будите с легкостью изменять их, а может быт и не будите никогда, лично меня все устраивает так, как установлено по-умолчанию, но я практически не печатаю широких текстов (и никто в организации не печатает).

Для выбора шрифта используется параметр FontNumber. Если в первый же раз использования winprn русский (киллирический) текст не печатается, то можно попробовать изменить шрифт, указав его номер в параметре FontNumber. Какой именно номер указывать? Здесь тоже все просто: формируем файл fonts.txt и просто считаем сверху, начиная с единицы, по-строчно до нужного шрифта. Лучше всего использовать шрифт Courier New (Courier New Cyr), но можно и любой другой. Будьте осторожны с номерами шрифтов, при добавлении нового шрифта, нумерация может измениться. Впрочем, для организаций, где к дополнительным шрифтам пользователи не имеют никакого отношения, эта проблема остро не стоит.

Даже при привальном выборе шрифта, принтер по-прежнему может не печатать по-русски. В таком случае попробуйте выставить значение параметра ConvertToAnsi в единицу. При этом DOS-текст, перед выводом на печать, будет преобразовываться в формат Windows. Проблем преобразования у меня не было ни разу.

Параметр FontSize в данной версии не используется.

И последний параметр CheckEndPages отвечает за контроль символа перевода строки. Некоторые программы, при подготовке текстов вставляют в текст, в том месте, где должен быть разрыв страницы, специальный символ, который улавливается принтером и вызывает прогон листа. Для большинства современных принтеров использовать специальный символ нет нужды (хотя иногда может и есть), поэтому параметр CheckEndPages выставлен в ноль. Если вам обязательно нужно, чтобы разбивка на страницы, установленная в тексте, сохранилась, установите CheckEndPages=1.

Вот и все. Я рассказал вам обо всех возможностях и параметрах программы winprn.exe. Надеюсь, что эта статься послужит вам хорошим руководством по эксплуатации этой программы или толчком для ее использования. Конечно, такая ситуация, когда для нормальной работы требуется использовать winprn.exe, не является нормальной. Все это свидетельствует о техническом и моральном старении оборудования и необходимости срочной модернизации. С другой стороны, эта программа может стать хорошим помощником в повседневной жизни простого пользователи и администратора, особенно в тех случаях, когда на модернизацию рассчитывать не приходится.

Скачать эту замечательную программу можно по адресу: http://webcenter.ru/~vivid9/soft/winprn.zip.

Максим Грибков, http//gribkovmx.chat.ru

 


Copyright © "Internet Zone", http://www.izcity.com/, info@izcity.com