Печать на лазерном принтере из DOS приложения на C++

Ответить

Код подтверждения
Введите код в точности так, как вы его видите. Регистр символов не имеет значения.

BBCode ВКЛЮЧЁН
[img] ВКЛЮЧЁН
[url] ВКЛЮЧЁН
Смайлики ОТКЛЮЧЕНЫ

Обзор темы
   

Развернуть Обзор темы: Печать на лазерном принтере из DOS приложения на C++

UZ » 05 май 2005, 20:02

2WinMain Большое спасибо, закрытие файлового потока в моем случае не помогало, а вот флажок "\f" пришелся очень кстати и принтер его "съел".

WinMain » 05 май 2005, 14:10

Если принтер подключен к LPT-порту, то текст можно выводить как в обычный текстовый файл, только имя файла нужно указать "LPT1".
Печать начинается сразу после получения символа новой страницы ('\f') или после закрытия файлового потока.

Код: Выделить всё

#include <fstream.h>

ofstream ofs("LPT1");
ofs << "Hello, printer!" << '\f';
ofs.close();

Если вместо русских букв будут выводиться символы других алфавитов, то нужно подгрузить русскую кодовую страницу (866), обычно это делается с помощью специальной утилиты, которая поставляется вместе с принтером. Лучше её загружать вместе с загрузкой операционной системы через autoexec.bat

mobius » 05 май 2005, 13:33

Тогда тебе остается только одно. Изучать коды принтера и писать их в LPT
Будешь гемороиться под каждую модель. Иначе никак!

UZ » 05 май 2005, 13:24

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

mobius » 05 май 2005, 10:31

Вобщем, есть такая прога DosPRN
Она перехватывает все сообщения из LPT и выводит на любой виндовский принтер!
Настройки довольно удобные, есть конечно глюки небольшие, но работать можно, причём можно задавать шрифт по умолчанию и т.д

UZ » 05 май 2005, 09:28

2Bikutoru этот вариант уже испробован, просто под досом при копировании в PRN это срабатывает, но если открывать файл для записи в Си, тоо единственный эффект это то, что загорается индикация передачи данных, в лучшем случае печать начинается минут через 15-20. для справок: файл для печати пробовал и оставлять открытым и закрывал. Пожалуйста если есть, то еще идеи.

Bikutoru » 05 май 2005, 08:45

В DOS есть специальный порт под названием prn. Если его открыть для записи как обычный файл, то данные, которые будут в него записаны, выведутся на печать. С лазерным принтером мне это тестировать приходилось - работало... Вот только, скорее всего, возникнут проблемы с русским языком...

Печать на лазерном принтере из DOS приложения на C++

UZ » 03 май 2005, 22:36

Пожалуйста, если кто знает, напишите код програмки, с помощью которой можно вывести на лазерный принтер форматированный текст на C++ (не Visual, а обычном до версии 5.01 включительно), или подскажите как это сделать.

Вернуться к началу