Управление принтером HP deskjet3500

Разговоры на любые темы: вы можете обсудить здесь какой-либо сайт, найти единомышленников или просто пообщаться...
ssv22
Обычный пользователь
Обычный пользователь
 
Сообщения: 89
Зарегистрирован: 06.11.2005 (Вс) 8:47

Управление принтером HP deskjet3500

Сообщение ssv22 » 25.12.2007 (Вт) 11:17

Добрый всем день!
Вопрос такой:
Для матричных принтеров с помощью ESC-п последовательностей можно заставить, допустим, сделать первод каретки, прокурутить вперед или назад на несколько строк бумагу и тд.

Для перьевых (векторных) графопостроителей - язык HPGL или HPGL/2 - еще проще: поднять перо PU, опустить перо PD, переместить перо по X или Y и тд.
Это я все проходил успешно.

А вот для струйных принтеров (подключенных к порту USB) есть ли такое средство?
Могу ли я как-то заставить его, например, переместить печ.головку в определенное положение(сделать несколько шагов) или управлять подачей бумаги(вперед/назад)?
Конкретно меня интересует притер HP DeskJet3500 series на порту USB.

Заранее спасибо.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 25.12.2007 (Вт) 11:23

В общем случае нет. Став драйвером, разобравшись во внутренних командах принтера - ты сможешь несколько больше.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Сообщение Денис » 25.12.2007 (Вт) 11:26

Как мне кажется, нет. Хотя я с лазерными в основном, работаю. Там такого нет.
Мне в голову пришло сравнение:
Раньше на своем стареньком запорожце я мог открыват и закрывать воздушную заслонку, переключать скорости с помощью КПП и т.д. Подскажите, пожалуйста, как мне сделать что либо подобное, на моей Хонде с гибридным двиглом
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

ssv22
Обычный пользователь
Обычный пользователь
 
Сообщения: 89
Зарегистрирован: 06.11.2005 (Вс) 8:47

Сообщение ssv22 » 25.12.2007 (Вт) 11:29

Хакер писал(а):В общем случае нет. Став драйвером, разобравшись во внутренних командах принтера - ты сможешь несколько больше.


Так вот где-бы почитать об этих "внутренних командах принтера"?

Я помню к Эпсону матричному прилагалась книга, где и описывались все его команды.
К плоттеру HP тоже была книга с командами языка HPGL/2.

И что в моем случае делать? :-(

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 25.12.2007 (Вт) 11:31

Отлаживать драйвер или обращаться к HP.

А зачем вообще тебе это надо? Чем штатный менеджер не устраивает?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

ssv22
Обычный пользователь
Обычный пользователь
 
Сообщения: 89
Зарегистрирован: 06.11.2005 (Вс) 8:47

Сообщение ssv22 » 25.12.2007 (Вт) 11:38

Денис писал(а):Как мне кажется, нет. Хотя я с лазерными в основном, работаю. Там такого нет.
Мне в голову пришло сравнение:
Раньше на своем стареньком запорожце я мог открыват и закрывать воздушную заслонку, переключать скорости с помощью КПП и т.д. Подскажите, пожалуйста, как мне сделать что либо подобное, на моей Хонде с гибридным двиглом


Не, ну каккие-то команды должны быть! Когда мы печатаем документ определенные данные передаются на принтер.

Вот для матричного я делал так: печатал в файл и смотрел его - это и был набор ESC-последовательностей. Потом команда Copy/b lpt1 и принтер печатал.
Для перьевого плоттера HP, если сделать печать в файл и просмотреть его мы увидим, что это бычный текстовый файл с командами HPGL/2.

ssv22
Обычный пользователь
Обычный пользователь
 
Сообщения: 89
Зарегистрирован: 06.11.2005 (Вс) 8:47

Сообщение ssv22 » 25.12.2007 (Вт) 11:43

Хакер писал(а):Отлаживать драйвер или обращаться к HP.

А зачем вообще тебе это надо? Чем штатный менеджер не устраивает?


Пока только любопытство (двигатель прогресса :-)

Как бы мы жили если постоянно не задавали вопросов: "А что если..."

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 25.12.2007 (Вт) 11:48

Не, ну каккие-то команды должны быть! Когда мы печатаем документ определенные данные передаются на принтер.

Какие-то передаются, но вовсе не те, которые ты ожидаешь. Передаётся документ в специальном векторно-растровом формате. А уже в самом принтере менеджер печати составляет для принтера программа (куда передвинуть башню, когда активировать сопло, когда сдвинуть бумагу), причём всё это с учётом характеристик печатающий системы (инерция головки, задержка перед активацией сопел).
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

ssv22
Обычный пользователь
Обычный пользователь
 
Сообщения: 89
Зарегистрирован: 06.11.2005 (Вс) 8:47

Сообщение ssv22 » 25.12.2007 (Вт) 12:05

Хакер писал(а):
Не, ну каккие-то команды должны быть! Когда мы печатаем документ определенные данные передаются на принтер.

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


Ну какая-то аналогия имеется или тут имеем место быть какое-то "Революционное" отличие?
Если так, то чем это объясняется: устройством принтера или порта USB ?

PS. когда в окне программы обслуживания принтера я жму кнопку "очистка картриджей", передается ведь определенная комманда, а не документ, тк. его в данном случае и нет!

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 25.12.2007 (Вт) 12:09

Ну какая-то аналогия имеется или тут имеем место быть какое-то "Революционное" отличие?
Если так, то чем это объясняется: устройством принтера или порта USB ?

Ты не можешь никак понять, что в отличие от графо-построителя, где рисуемый объект разбивался в набор команд (понятных принтеру) на машине и таким уже шёл на принтер, здесь разбивание на набор команд происходит внутри самого принтера.

PS. когда в окне программы обслуживания принтера я жму кнопку "очистка картриджей", передается ведь определенная комманда, а не документ, тк. его в данном случае и нет!

Разумеется, определённая команда. Но такие команды существуют только для того, для чего они действительно нужны. Для управления башней такой команды нет.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

ssv22
Обычный пользователь
Обычный пользователь
 
Сообщения: 89
Зарегистрирован: 06.11.2005 (Вс) 8:47

Сообщение ssv22 » 25.12.2007 (Вт) 12:21

Хакер писал(а):
Ну какая-то аналогия имеется или тут имеем место быть какое-то "Революционное" отличие?
Если так, то чем это объясняется: устройством принтера или порта USB ?

Ты не можешь никак понять, что в отличие от графо-построителя, где рисуемый объект разбивался в набор команд (понятных принтеру) на машине и таким уже шёл на принтер, здесь разбивание на набор команд происходит внутри самого принтера.
...


Вот, наверное, это я и хотел выяснить.
Кстати, при печати документа в файл как его потом распечатать.
Для LPT порта была команда "Copy/b lpt1" а для USB ?
Что-то до сих пор не сталкивался с этим, а сейчас в принтере чернила высохли - не попробуешь.

Ну и еще, если позволите, вопрос: если на принтер передается документ, который там и обрабатывается, то Чем в это время занимается драйвер принтера?

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 25.12.2007 (Вт) 12:55

ssv22, перетащи файл мышкой на принтер.
Для USB-портов часто создаются альясы, можешь использовать их.
Lasciate ogni speranza, voi ch'entrate.

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Сообщение Денис » 25.12.2007 (Вт) 14:15

ssv22
А может тебе PostScript нужен? Или язык PCL, о котором там же по ссылке написано :wink:
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

ssv22
Обычный пользователь
Обычный пользователь
 
Сообщения: 89
Зарегистрирован: 06.11.2005 (Вс) 8:47

Сообщение ssv22 » 25.12.2007 (Вт) 15:47

Денис писал(а):ssv22
А может тебе PostScript нужен? Или язык PCL, о котором там же по ссылке написано :wink:


Спасибо! Сейчас буду смотреть...
Я и забыл что-то про PCL, надо вспомнить.

ssv22
Обычный пользователь
Обычный пользователь
 
Сообщения: 89
Зарегистрирован: 06.11.2005 (Вс) 8:47

Сообщение ssv22 » 26.12.2007 (Ср) 23:27

ssv22 писал(а):
Денис писал(а):ssv22
А может тебе PostScript нужен? Или язык PCL, о котором там же по ссылке написано :wink:


Спасибо! Сейчас буду смотреть...
Я и забыл что-то про PCL, надо вспомнить.


Посмотрел PCL, кое-что вспомнил - но это же в основном для лазерных принтеров, а меня интересуют струйные.

PS. PCl кстати почти аналогия ESC - последовательностей для матричных пр.
Теории, Теории мне не хватает, потому и задаю мож на ваш взгляд дурацкие вопросы.

PPS. в Dos и Win98-95 вроде была поддержка операций с прерыванием INT13 (ROM BIOS), там можно было управлять и HDD и FDD - вращением шпинделя, пермещением м/головок и тд. просто пересылкой нужной команды в нужный регистр.
Как с этим делом в Win XP?
Вот пример моей проги/пробы работы через прерывания:
"
DOMAINS
file=inp;out

PREDICATES
test(char,char,char)

CLAUSES
test(10,10,Ch13):-
char_int(Ch13,Int13),
write(Ch13),flush(out),
readchar(Ch1),char_int(Ch1,Int1),
readchar(Ch2),char_int(Ch2,Int2),
readchar(Ch3),char_int(Ch3,Int3),
test(Int1,Int2,Int3).

test(10,Ch13,10):-
char_int(Ch13,Int13),
write(Ch13),flush(out),
readchar(Ch1),char_int(Ch1,Int1),
readchar(Ch2),char_int(Ch2,Int2),
readchar(Ch3),char_int(Ch3,Int3),
test(Int1,Int2,Int3).

test(Ch13,10,10):-
char_int(Ch13,Int13),
write(Ch13),flush(out),
readchar(Ch1),char_int(Ch1,Int1),
readchar(Ch2),char_int(Ch2,Int2),
readchar(Ch3),char_int(Ch3,Int3),
test(Int1,Int2,Int3).

test(10,10,9):-
writef("%c%c%c",13,10,9),flush(out),
readchar(Ch1),char_int(Ch1,Int1),
readchar(Ch2),char_int(Ch2,Int2),
readchar(Ch3),char_int(Ch3,Int3),
test(Int1,Int2,Int3).

test(Ch11,Ch12,Ch13):-
write(Ch11,Ch12,Ch13),
flush(out),
readchar(Ch1),char_int(Ch1,Int1),
readchar(Ch2),char_int(Ch2,Int2),
readchar(Ch3),char_int(Ch3,Int3),
test(Int1,Int2,Int3).

/*test(Ch11,Ch12,Ch13):-
flush(out),
closefile(inp),
closefile(out).
*/
/*----------------------------------------------------*/

GOAL
openmodify(inp,"X1"),
filemode(inp,1),
filepos(inp,0,0),
readdevice(inp),
openmodify(out,"X2"),
filemode(out,1),
filepos(out,0,0),
writedevice(out),
readchar(Ch1),char_int(Ch1,Int1),
readchar(Ch2),char_int(Ch2,Int2),
readchar(Ch3),char_int(Ch3,Int3),
test(Int1,Int2,Int3),
closefile(inp),
closefile(out)
"

Прога написана на ТурбоПрологе в 1995 году, короче древняя...
если не сказать дремучая :-)

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 26.12.2007 (Ср) 23:29

в Windows прерываться код может только в ring-0 (т.е. код драйверов, ядра и т.д.). Т.е. для использования прерывания тебе нужно быть драйвером. Но, учитывай, что это не DOS, и здесь не будет досовских функций, висящих на прерываниях.

В ring-3 доступно только лишь прерывание INT 3, которое 0xCC.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.


Вернуться в Народный треп

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 52

    TopList