Здравствуйте iv_art, Вы писали:
IA>как ловить сеансы DOS-печати (из DOS-программ), дабы преобразовать для вывода на Win-принтер?
А зачем оно тебе? Ведь винда сама нормально эмулирует печать из ДОСа?
Re[2]: печать
От:
Аноним
Дата:
12.02.02 07:13
Оценка:
Здравствуйте Lexey, Вы писали:
L>Здравствуйте iv_art, Вы писали:
IA>>как ловить сеансы DOS-печати (из DOS-программ), дабы преобразовать для вывода на Win-принтер?
L>А зачем оно тебе? Ведь винда сама нормально эмулирует печать из ДОСа?
принтер если кириллицу не поддерживает. win-печать только
Здравствуйте Аноним, Вы писали:
А>Здравствуйте Lexey, Вы писали:
L>>Здравствуйте iv_art, Вы писали:
IA>>>как ловить сеансы DOS-печати (из DOS-программ), дабы преобразовать для вывода на Win-принтер?
L>>А зачем оно тебе? Ведь винда сама нормально эмулирует печать из ДОСа?
А>принтер если кириллицу не поддерживает. win-печать только
Гхм, не понял. Под виндами печать по жизни только виндовая (если конечно самому не сотворить какой-нибудь изврат).
Здравствуйте Lexey, Вы писали:
L>>>А зачем оно тебе? Ведь винда сама нормально эмулирует печать из ДОСа?
А>>принтер если кириллицу не поддерживает. win-печать только
L>Гхм, не понял. Под виндами печать по жизни только виндовая (если конечно самому не сотворить какой-нибудь изврат).
Это не совсем так. Можно сделать и аналог DOS-печати.
Проблема в том, что некоторые принтеры действительно не умеют печатать русские буквы в режиме DOS-печати. А это бывает нужно, если старой DOS-программе нужно что-то напечатать. Неруссифицированный (точнее неДОСифицированный) принтер напечатает крякозябры вместо русских букв. Выход один — написать Windows-программу, которая подхватывает файл, созданный DOS-программой и выводит его на печать. Я такую программу себе написал. Если нужно, могу выслать exeшник или рассказать, как написать самому.
Здравствуйте econt, Вы писали:
E>Здравствуйте Lexey, Вы писали:
L>>>>А зачем оно тебе? Ведь винда сама нормально эмулирует печать из ДОСа?
А>>>принтер если кириллицу не поддерживает. win-печать только
L>>Гхм, не понял. Под виндами печать по жизни только виндовая (если конечно самому не сотворить какой-нибудь изврат). E>Это не совсем так. Можно сделать и аналог DOS-печати.
Каким образом (если не писать драйверов)? Обычно, Дос-программы печатают, просто посылая данные на устройство PRN (или LPTx). Любой порт LPTx можно замапить на нормальный виндовый принтер. В этом случае это будет обычная виндовая печать.
Здравствуйте Lexey, Вы писали:
L>>>Гхм, не понял. Под виндами печать по жизни только виндовая (если конечно самому не сотворить какой-нибудь изврат). E>>Это не совсем так. Можно сделать и аналог DOS-печати.
L>Каким образом (если не писать драйверов)? Обычно, Дос-программы печатают, просто посылая данные на устройство PRN (или LPTx). Любой порт LPTx можно замапить на нормальный виндовый принтер. В этом случае это будет обычная виндовая печать.
Опять же, это не так. многие принтеры невозможно заставить печатать русские (украинские и т.д.) буквы в DOS режиме. Большинство современных струйных принтеров, например. В этом случае никакая DOS-программа не сможет нормально напечатать на такой принтер. Как ни перенаправляй порт, ничего этим не добьешься. Это абсолютно проверенный факт. Если ты этого не знаешь, легко попробовать.
У нас (я работаю в банке) есть такая проблема, поскольку есть много DOS-программ. Выход из положения — заставить DOS-программу выводить данные не на печать, а в файл. А потом уже это файл подхватывается Windows-программой и нормально выводится на принтер.
Здравствуйте econt, Вы писали:
E>Здравствуйте Lexey, Вы писали:
L>>>>Гхм, не понял. Под виндами печать по жизни только виндовая (если конечно самому не сотворить какой-нибудь изврат). E>>>Это не совсем так. Можно сделать и аналог DOS-печати.
L>>Каким образом (если не писать драйверов)? Обычно, Дос-программы печатают, просто посылая данные на устройство PRN (или LPTx). Любой порт LPTx можно замапить на нормальный виндовый принтер. В этом случае это будет обычная виндовая печать. E>Опять же, это не так. многие принтеры невозможно заставить печатать русские (украинские и т.д.) буквы в DOS режиме.
Еще раз, нет никакого ДОС-режима. Описанная тобой проблема имеет совсем другое объяснение. Данные, записываемые в порт идут практически прямиком на принтер. Соответсвенно, не производиться ни загрузка шрифтов, ни другая инициализация. Но это все равно виндовая печать.
>Большинство современных струйных принтеров, например. В этом случае никакая DOS-программа не сможет нормально >напечатать на такой принтер. Как ни перенаправляй порт, ничего этим не добьешься. Это абсолютно проверенный факт. >Если ты этого не знаешь, легко попробовать.
Меня уже давно не мучают подобные проблемы.
E>У нас (я работаю в банке) есть такая проблема, поскольку есть много DOS-программ. Выход из положения — заставить DOS-программу выводить данные не на печать, а в файл. А потом уже это файл подхватывается Windows-программой и нормально выводится на принтер.
Выходы тут возможны разные. Вплоть до написания своего драйвера принтера.
L>Еще раз, нет никакого ДОС-режима. Описанная тобой проблема имеет совсем другое объяснение. Данные, записываемые в порт идут практически прямиком на принтер. Соответсвенно, не производиться ни загрузка шрифтов, ни другая инициализация. Но это все равно виндовая печать.
Согласен полностью. Просто "ДОС-режимом" я обозвал печать из ДОС программ. А насчет инициализации — для многих принтеров ее возможно сделать (заслать на принтер файлик, поставляемый самим производителем принтера). После этого ДОС-программы смогут нормально печатать. Однако возможно это далеко не для всех принтеров (особенно современных). Именно это я и имел в виду.
L>Меня уже давно не мучают подобные проблемы.
Ну, это как кому повезет.
E>>У нас (я работаю в банке) есть такая проблема, поскольку есть много DOS-программ. Выход из положения — заставить DOS-программу выводить данные не на печать, а в файл. А потом уже это файл подхватывается Windows-программой и нормально выводится на принтер.
L>Выходы тут возможны разные. Вплоть до написания своего драйвера принтера.
Конечно, хотя это значительно сложнее, чем предлагаемый мной вариант.
Здравствуйте Lexey, Вы писали:
L>Каким образом (если не писать драйверов)? Обычно, Дос-программы печатают, просто посылая данные на устройство PRN (или LPTx). Любой порт LPTx можно замапить на нормальный виндовый принтер. В этом случае это будет обычная виндовая печать.
Невероятно радуют термины "обычная виндовая печать" и "обычный виндовый принтер" Вероятно есть еще необычная виндовая печать и необычные виндовые принтеры
Если серьезно, то практически любой принтер печатает то, что на него послали. Соответственно если на него послать текстовый файл, то принтер честно попытается напечатать его имеющимися в нем шрифтами. Соответственно "нормальная виндовая печать" такого текстового файла даже из нотепада это некий набор команд на pcl, ps или что там принтер понимает, содержащее текст и всякие там шрифты и прочую ерунду для форматирования этого текста. Всю эту байду рожает спулер на основе выбранного драйвера принтера. Но посылать на принтер конкретные байтики возможность все равно есть. Чем, собственно, и занимается досовая прога какой бы принтер не был прицеплен к lpt1 физически или смаплен с сетки. И если в принтере нету русских шрифтов, то никакая сила не заставит их там объявиться. Потому как в давние времена досовых программ шрифты грузились в принтер посредством escape-последовательностей. Которые сильно зависели от конкретного принтера, но были единственной возможностью _быстрой_ печати русского текста на неруссифицированных матричных принтерах. Это я все к тому, что "нормальная виндовая печать" к досовым прогам имеет крайне мало отношения.
Здравствуйте iv_art, Вы писали:
IA>to econt. ну опиши, как заставить чужую прогу в файл выгружать. попробую.
Есть сильное ощущение, что проще будет найти руссификатор для принтера.
Для всяких hp laserjet эта задача вполне решаема, и для epson можно порыть.
Накрайняк можно найти описание escape-команд для конкретного принтера и слабать шрифты самому...
Наверняка будет быстрее, чем изобретать что-то еще
Здравствуйте rh2000, Вы писали:
R>Здравствуйте Lexey, Вы писали:
L>>Каким образом (если не писать драйверов)? Обычно, Дос-программы печатают, просто посылая данные на устройство PRN (или LPTx). Любой порт LPTx можно замапить на нормальный виндовый принтер. В этом случае это будет обычная виндовая печать.
R>Невероятно радуют термины "обычная виндовая печать" и "обычный виндовый принтер" Вероятно есть еще необычная виндовая печать и необычные виндовые принтеры
По-моему, они радуют только тебя.
R>Если серьезно, то практически любой принтер печатает то, что на него послали. Соответственно если на него послать текстовый файл, то принтер честно попытается напечатать его имеющимися в нем шрифтами. Соответственно "нормальная виндовая печать" такого текстового файла даже из нотепада это некий набор команд на pcl, ps или что там принтер
понимает, содержащее текст и всякие там шрифты и прочую ерунду для форматирования этого текста. Всю эту байду рожает
Разница только в том, как оно на принтер попадает. ДОС-программы печатают напрямую в принтерный порт, что под ДОСом приводит к прямой передаче данных на принтер. Под виндами это не так.
>спулер на основе выбранного драйвера принтера. Но посылать на принтер конкретные байтики возможность все равно есть.
Нет, возможно послать на сам принтер нет. Посылка все равно проходит через спулер.
>Чем, собственно, и занимается досовая прога какой бы принтер не был прицеплен к lpt1 физически или смаплен с сетки. >И если в принтере нету русских шрифтов, то никакая сила не заставит их там объявиться. Потому как в давние времена >досовых программ шрифты грузились в принтер посредством escape-последовательностей. Которые сильно зависели от >конкретного принтера, но были единственной возможностью _быстрой_ печати русского текста на неруссифицированных >матричных принтерах. Это я все к тому, что "нормальная виндовая печать" к досовым прогам имеет крайне мало отношения.
И зачем ты мне это рассказываешь? Я в 10 классе изучал мануал к Epson FX800 и его escape последованости, т.ч. я вполне представляю, о чем веду разговор. Отношение "виндовой" печати к досовским прогам такое же, как и к виндовым. Пропускается всего один шаг — обработка контекста устройства драйвером принтера. Некоторые виндовые проги, кстати, печатают в постскрипте, pcl и т.п., и в этом случае последовательность обработки вообще идентична.
Здравствуйте Lexey, Вы писали:
R>>Невероятно радуют термины "обычная виндовая печать" и "обычный виндовый принтер" Вероятно есть еще необычная виндовая печать и необычные виндовые принтеры
L>По-моему, они радуют только тебя.
А я говорю только за себя и ни на какие обобщения не претендую
L>Разница только в том, как оно на принтер попадает. ДОС-программы печатают напрямую в принтерный порт, что под ДОСом приводит к прямой передаче данных на принтер. Под виндами это не так.
L>Нет, возможно послать на сам принтер нет. Посылка все равно проходит через спулер.
Смотря как определить что есть спулер. Я под спулером понимаю подсистему, преобразующую вызовы ф-ций gdi для печати в конкретный набор команд на pcl/ps/чем_угодно_еще. Если ты под спулером понимаешь ту часть системы, которая шлет конкретные данные на принтер, то конечно же печать досовой проги через него проходит. Иначе как бы она (досовая прога) печатала на сетевой принтер смапленный на lpt. Но я говорю о том, что данные, печатаемый досовой прогой на любой принтер ничем не обрабатываются и следовательно если на принтере нету русских шрифтов, то она (досовая прога) так и будет печатать кракозябрами какой бы драйвер принтера не стоял в системе.
L>И зачем ты мне это рассказываешь? Я в 10 классе изучал мануал к Epson FX800 и его escape последованости, т.ч. я вполне представляю, о чем веду разговор. Отношение "виндовой" печати к досовским прогам такое же, как и к виндовым. Пропускается всего один шаг — обработка контекста устройства драйвером принтера.
Гм. И откуда тогда разговоры, что некая "виндовая печать" лечит проблемы досовой проги?
Здравствуйте rh2000, Вы писали:
R>Здравствуйте Lexey, Вы писали:
R>>>Невероятно радуют термины "обычная виндовая печать" и "обычный виндовый принтер" Вероятно есть еще необычная виндовая печать и необычные виндовые принтеры
L>>По-моему, они радуют только тебя.
R>А я говорю только за себя и ни на какие обобщения не претендую
L>>Разница только в том, как оно на принтер попадает. ДОС-программы печатают напрямую в принтерный порт, что под ДОСом приводит к прямой передаче данных на принтер. Под виндами это не так.
L>>Нет, возможно послать на сам принтер нет. Посылка все равно проходит через спулер.
R>Смотря как определить что есть спулер. Я под спулером понимаю подсистему, преобразующую вызовы ф-ций gdi для печати в конкретный набор команд на pcl/ps/чем_угодно_еще. Если ты под спулером понимаешь ту часть системы, которая шлет
Этим занимается драйвер принтера, а не спулер.
>конкретные данные на принтер, то конечно же печать досовой проги через него проходит. Иначе как бы она (досовая >прога) печатала на сетевой принтер смапленный на lpt. Но я говорю о том, что данные, печатаемый досовой прогой на >любой принтер ничем не обрабатываются и следовательно если на принтере нету русских шрифтов, то она (досовая прога) >так и будет печатать кракозябрами какой бы драйвер принтера не стоял в системе.
Да, насчет именно драйвера я зря сказал. Именно его упоминать не стоило, но никто не мешает написать свой принт-процессор или спулер.
L>>И зачем ты мне это рассказываешь? Я в 10 классе изучал мануал к Epson FX800 и его escape последованости, т.ч. я вполне представляю, о чем веду разговор. Отношение "виндовой" печати к досовским прогам такое же, как и к виндовым. Пропускается всего один шаг — обработка контекста устройства драйвером принтера.
R>Гм. И откуда тогда разговоры, что некая "виндовая печать" лечит проблемы досовой проги?
А где ты видел хоть слово про лечение проблем? По-моему, я говорил только о том, что никакой досовской печати под виндами не бывает в принципе.
Здравствуйте Lexey, Вы писали:
R>>Гм. И откуда тогда разговоры, что некая "виндовая печать" лечит проблемы досовой проги?
L>А где ты видел хоть слово про лечение проблем? По-моему, я говорил только о том, что никакой досовской печати под виндами не бывает в принципе.
Гм второй раз. Есть мнение, что печать она и в Африке печать. Откуда ни печатай, по-любому на принтер шлется некоторое количество команд. В случае досовой проги их рожает сама прога, в случае виндовой проги их рожает прога в тесном сотрудничестве с самой виндой А уж как эти команды попадают на принтер — дело десятое...
Ладно, будем считать, что мы не сошлись в терминах Замяли и проехали.
Здравствуйте rh2000, Вы писали:
Здравствуйте Lexey, Вы писали:
Здравствуйте iv_art, Вы писали:
R>>>Гм. И откуда тогда разговоры, что некая "виндовая печать" лечит проблемы досовой проги?
L>>А где ты видел хоть слово про лечение проблем? По-моему, я говорил только о том, что никакой досовской печати под виндами не бывает в принципе.
R>Гм второй раз. Есть мнение, что печать она и в Африке печать. Откуда ни печатай, по-любому на принтер шлется некоторое количество команд. В случае досовой проги их рожает сама прога, в случае виндовой проги их рожает прога в тесном сотрудничестве с самой виндой А уж как эти команды попадают на принтер — дело десятое... R>Ладно, будем считать, что мы не сошлись в терминах Замяли и проехали.
Да, я уже и забыл про эту тему, а вы все спорите. Лучше б человеку посоветовали, что ему делать...
>ну опиши, как заставить чужую прогу в файл выгружать. попробую
Может я неточно объяснил. Я не умею заставлять DOS-программу выгружать информацию в файл вместо принтера. Речь немного о другом. Если есть исходники DOS-программы, тогда ее очень легко заставить печатать в файл (т.е. просто сохранять текст в файле, а не выводить на печать). Предположим, что все нужные DOS-программы переделаны таким образом, и выводят информацию в один и тот же файл (напр. spool.txt). Пишем windows-программу, которая периодически проверяет наличие файла spool.txt, и как только он обнаружен, выводит его на печать, а затем удаляет. Вот и весь способ. Если интересно, могу даже исходники дать. Обращайтесь: cprime_prj@yahoo.com
Кстати, есть принтеры, на которые вообще ничего нельзя вывести из DOS-программ. Даже английские буквы. Принтер просто не печатает. Совсем.
что легче в лазер шрифты загрузить я и сам знаю. дело в струйных принтерах. вопрос свелся к тому, как заставить ЧУЖУЮ прогу выгружать печать в файл . программу ПФР например. если б сам не видел такого не спрашивал бы.есть прога — при каждом сеансе печати из ЛЮБОЙ ДОС-программы вылезает из трэя говорит, щас печатать буду. подозреваю что сначала че-то грузит чтоб все в файл уходило. Платная просто. ломать не предлагайте, лучше свою накатать-ниче сложного, а покупателей много (благодаря тем же ПФР, ГНИ и т.д.).
Здравствуйте iv_art, Вы писали:
IA>что легче в лазер шрифты загрузить я и сам знаю. дело в струйных принтерах. вопрос свелся к тому, как заставить ЧУЖУЮ прогу выгружать печать в файл . программу ПФР например. если б сам не видел такого не спрашивал бы.есть прога — при каждом сеансе печати из ЛЮБОЙ ДОС-программы вылезает из трэя говорит, щас печатать буду. подозреваю что сначала че-то грузит чтоб все в файл уходило. Платная просто. ломать не предлагайте, лучше свою накатать-ниче сложного, а покупателей много (благодаря тем же ПФР, ГНИ и т.д.).