Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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
2-1307120302
IPranker
2011-06-03 20:58
2011.09.25
Как получить кол-во элементов в ординал типе?


15-1306960198
Юрий
2011-06-02 00:29
2011.09.25
С днем рождения ! 2 июня 2011 четверг


15-1303815269
OW
2011-04-26 14:54
2011.09.25
Построитель диаграмм готовых БД для Oracle. Ищу.


11-1209036425
zldo
2008-04-24 15:27
2011.09.25
Form.Show


1-1266349494
LightGreen
2010-02-16 22:44
2011.09.25
Деактивация формы при клике на popup-окне





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский