Форум: "Прочее";
Текущий архив: 2011.09.25;
Скачать: [xml.tar.bz2];
Внизвозможно ли послать PCL-команду на принтер HP LJ1018 Найти похожие ветки
← →
chum © (2011-05-30 23:40) [0]Добрый вечер!
Вопрос, который меня интересует, возник из-за учебного задания в университете:"Выполнение программной настройки струйного или лазерного принтера с помощью PCL-команд. Разработать меню не менее чем на пять режимов работы принтера".
Так вот, собственно вопрос: у меня дома лазерный принтер HP LJ1018, в его документации есть такая строка "The HP LaserJet 1018 does not support PCL 5e". Правильно ли я понимаю, что данный принтер не поддерживает PCL?
Написав в bat-файле
NOTEPAD /P readme.txt
отправляю на печать файл readme.txt, в котором сначала пробую
писать Escape-последовательность, а на следующей строке произвольный текст для проверки.
Но, увы, у меня Escape-последовательность не распознается и выходит на печать вместе с текстом....
Вот я и ломаю голову: это я косячу в самом синтаксисе написания Esc-посл., или мой принтер просто изначально не сможет распознать её?
← →
Dimka Maslov © (2011-05-30 23:58) [1]Неужели до сих пор студентов заставляют заниматься такой ерундой, вместо того, что бы нормально преподавать программирование?
← →
antonn © (2011-05-30 23:59) [2]мне бы такую "ерунду" задавали, вместо канвасных рисовалок и калькуляторов... :(
← →
chum © (2011-05-31 00:22) [3]antonn, есть и канвасные рисовалки и калькуляторы)))) С ними всё OK!
Но это задание по курсу "Операционные системы"....
← →
NailMan © (2011-05-31 00:23) [4]это значит что он не поддерживает PCL5e, а не PCL. Уже с 2000гг дрова всех офисных принтеров поддерживают только PCL6 и эмуляцию PS. Так что правду пишут - 5е нет, а 6 да.
http://en.wikipedia.org/wiki/Printer_Command_Language
← →
chum © (2011-05-31 00:36) [5]но если так, то как правильно проделать задание?
Чтобы создать Escape-последовательность в текстовом файле жму сначала Alt и, удерживая, набираю 27, чтоб получился Escape-символ, потом можно писать, что мне нужно для настроек, ну пусть будет, например, &l3a1o8D - выбор в принтере формата бумаги типа Legal, альбомной ориентации и печати при 8 строках на дюйм (пример взят с сайта http://www.awella.ru/hp5100-9.php.htm).
Но в результате команда настройки не выполняется....
← →
chum © (2011-05-31 00:56) [6]Или я изначально что-то не так делаю?
Может, в самом bat-нике её нужно где-то прописать, а не текстовом файле readme, который этим bat-ником как-раз и выводится на печать командой
NOTEPAD /P readme.txt
Только как?
← →
Германн © (2011-05-31 01:20) [7]
> Чтобы создать Escape-последовательность в текстовом файле
> жму сначала Alt и, удерживая, набираю 27, чтоб получился
> Escape-символ
А ты посмотри Hex-вьювером этот файл. Увидишь бред.
← →
chum © (2011-05-31 01:48) [8]Так как правильно надо писать? И в какой системе счисления? Чтоб принтер распознал команду?
← →
Германн © (2011-05-31 02:06) [9]
> Так как правильно надо писать? И в какой системе счисления?
> Чтоб принтер распознал команду?
Прочитай учебник, если он у тебя есть. Если учебника нет - найди/купи его.
А учебник явно нужен!
← →
chum © (2011-05-31 02:08) [10]Подскажите название учебника!
← →
chum © (2011-05-31 02:16) [11]
> Прочитай учебник, если он у тебя есть. Если учебника нет
> - найди/купи его.А учебник явно нужен!
Я только за! Пролить свет в тёмные массы!)))))
← →
chum © (2011-05-31 02:24) [12]Пожалуйста, кто может помочь в решении данной задачи, направьте меня в нужное русло!
← →
Германн © (2011-05-31 02:30) [13]
> chum © (31.05.11 01:48) [8]
>
> Так как правильно надо писать?
Ну например #27.
← →
chum © (2011-05-31 02:34) [14]Хм, это я попробовала в первую очередь, не помогло, поэтому и начала дальше извращаться.
← →
chum © (2011-05-31 02:38) [15]Может быть, мне нужно сделать как-то ссылку на использование ANSI-драйвера?
← →
chum © (2011-05-31 03:43) [16]Или всё-таки к принтеру HP 1018 нельзя обращаться с помощью pcl-команд?
← →
Anatoly Podgoretsky © (2011-05-31 09:08) [17]Можно, но только это делать правильно, а не пытаться использовать notepad. Проще всего написать программу на Дельфи.
← →
sniknik © (2011-05-31 10:08) [18]> а не пытаться использовать notepad. Проще всего написать программу на Дельфи.
NC или Far эскейп задается в тексте как Ctrl+Q (переключение в режим) после Alt+27 (появится символ стрелочки влево)
получившийся файл нужно не печатать (там драйвер ненужного на преобразовывает) а копировать (F5) на PRN
(давно это было т.что возможны неточности...)
← →
chum © (2011-05-31 14:52) [19]Anatoly Podgoretsky,
> Проще всего написать программу на Дельфи.
Можно, но мне нельзя, так как это задание по учебе в университете - проделать нужно всё средствами bat-файлов и команд PCL.
sniknik,
> копировать (F5) на PRN
Как проделать нечто подобное, только для принтера с usb-портом.
Есть вариант какой-нибудь без расшаривания и без сторонних программ.
← →
VirEx © (2011-05-31 15:03) [20]>chum © (31.05.11 14:52) [19]
наверно есть драйвер присваивающий юэсби порту COM порт, а писать в компорт через writefile
← →
chum © (2011-05-31 15:26) [21]
> Как проделать нечто подобное, только для принтера с usb-
> портом.
Причем, принтер несетевой.
← →
Pavia © (2011-05-31 19:39) [22]Думаю команде WritePrinter не важно какой порт главное чтобы в системе принтер был правильно настроен.
Думаю через эту команду и надо слать коды.
← →
Slym © (2011-06-01 11:35) [23]
procedure TDirectPrint.PrintStr(const Str: String);
var
s,PrinterName:string;
hPrinter:THandle;
DocInfo:TDocInfo1;
Len,Writed:DWORD;
begin
s:=Str;
Len:=Length(s);
if Len=0 then exit;
if s[Len]<>#12 then
begin
s:=s+#12;
inc(Len);
end;
PrinterName:=GetDefaultPrinterName;
if not OpenPrinter(PChar(PrinterName),hPrinter, nil) then RaiseLastOSError;
try
DocInfo.pDocName:="DirectPrint";
DocInfo.pOutputFile:=nil;
//DocInfo.pDatatype:="RAW";
DocInfo.pDatatype:="TEXT";
if StartDocPrinter(hPrinter,1,@DocInfo)=0 then RaiseLastOSError;
//if not StartPagePrinter(hPrinter) then RaiseLastOSError;
if not WritePrinter(hPrinter,PChar(s),Len,writed) then RaiseLastOSError;
if writed<>Len then RaiseLastOSError;
//if not EndPagePrinter(hPrinter) then RaiseLastOSError;
if not EndDocPrinter(hPrinter) then RaiseLastOSError;
finally
ClosePrinter(hPrinter);
end;
end;
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2011.09.25;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.003 c