Re: echo string /dev/lp0 vs cups

2006-03-01 Пенетрантность Иван Лох
On Tue, Feb 28, 2006 at 07:04:30PM -0600, Alexander wrote:
 Ну так lp тот же cupsPrintFile использует. 
 lp можно standard input скармливать, а как 
 скормить char* указанному cupsPrintFile я не 
 нашел.

lp, как можно убедиться сделав
ls -l /proc/`pidof lp`/fd 
просто открывает в таком случае файл в каталоге
/var/tmp/


-- 
Иван Лох


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: echo string /dev/lp0 vs cups

2006-02-28 Пенетрантность Иван Лох
On Mon, Feb 27, 2006 at 02:02:24PM -0600, Alexander wrote:
 
 char* print_buff = printing printing printing;
 char* print_comm = lpr -l;
 char buf[200];
 sprintf(buf, echo \%s\ | %s, print_buf, print_comm);
 system(buf)

file:///usr/share/cups/doc-root/spm.html#3_2_2

#include cups/cups.h

int cupsPrintFile(const char *name, const char *filename, 
const char *title, int num_options, cups_option_t *options);;

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

Ну так в одном случае это растр, а в другом ascii.

А если тупо послать на /dev/lp0 выключенного принтера,
тоже съедаются?

Если нет, то я бы временно заменил parallel backend
на саt и посмотрел, что будет. Вообще, cups модульный весь.
И parallel backend от силы 200 строчек. 

-- 
Иван Лох


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: echo string /dev/lp0 vs cups

2006-02-28 Пенетрантность Иван Лох
On Mon, Feb 27, 2006 at 11:18:27AM -0600, Alexander wrote:
 доверять. Кроме того, надеюсь, это 
 поможет избежать неприятных ситаций, 
 возникновение которых я легко могу себе 
 представить. Например когда 
 недобросовестный (или забывчивый) 
 работник подвергнет сомнению 
 работоспособность системы вообще и 
 количество своих насчитанных рабочих 
 часов в частности.

Ну так купите железную хрень которая часы прихода-ухода прямо
на карточку печатает. 

-- 
Иван Лох


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: echo string /dev/lp0 vs cups

2006-02-28 Пенетрантность Andrey Melnikoff
Alexander [EMAIL PROTECTED] wrote:
 Программа предназначина для считывания магнитных карточек персонала с 
 нерегулярным рабочим днем, и записи в базу данных информации о их 
 приходе и уходе. Потом на основе этой информации расчитывается их 
 зарплата. Рабочий день может начинаться и кончатся в любое время дня и 
 ночи, речь идет о типографии.
 Читалки магнитных карточек предполагается пока использовать 2,
  
  А почему две? Так сложно построить триггер? При возникновении третьего
  стотояния - пусть вахтер допрашивает, какого фига вы пытаетесь войти на
  работу второй раз?
 Этот вопрос был в свое время активно провентелирован с руководством и 
 сотрудниками ИТ отдела, и решили что капиталовложение на еще один 
 считыватель оправдывает упрощение системы и защиту от дурака.
Хмм. что-то я наверное непонимаю, как усложнение системы ( а точнее
дуплицирование) может её упростить и защитить от дурака? 
Наличие двух карточек - это уже усложнение, т.к. прийдеться вспоминать,
какую карточку надо совать в этот терминал. 

  А можно глупый вопрос - зачем здесь принтер? Может проще повесить монитор
  под стекло, на котором писать Здравствуйте, Иван Петрович Сидиоров, желаем
  вам удачного рабочего дня. И человек видит - что его посчитали. А если туда
  прикрутить еще и базу данных с днями рождения, то можно и поздравлять :)
 Я достаточно долго общался с компьютерами, чтобы научится им не 
 доверять. Кроме того, надеюсь, это поможет избежать неприятных ситаций,
 возникновение которых я легко могу себе представить. Например когда
 недобросовестный (или забывчивый) работник подвергнет сомнению
 работоспособность системы вообще и количество своих насчитанных рабочих 
 часов в частности.
Он может точно так-же пойти в любую бухгалтерию и подвергнуть сомнению
результат работы 1С, которая работает на таком же ненадежном компьютере.

 Хотелось бы ответить цитатой из классики: Never Trust Anything Except 
 Hardcopy. (вытравить эти слова каленым железом на задницах разнообразных 
 кое-какеров)
Ага. А чего это все пользуются калькуляторами, вместо перекладывания
ракушек/счетных палочек/чего-то там ?

PS: Нет, я определнно хочу такого ягеля. мешка три, не меньше.


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: echo string /dev/lp0 vs cups

2006-02-28 Пенетрантность Alexander

Иван Лох escribió:

On Mon, Feb 27, 2006 at 11:18:27AM -0600, Alexander wrote:

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


Ну так купите железную хрень которая часы прихода-ухода прямо
на карточку печатает. 
Такая и стоит. Бугалтеров ломает в конце каждой недели набивать данные б 
эксель. Собственно, из-за того и сыр-бор.



--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: echo string /dev/lp0 vs cups

2006-02-28 Пенетрантность Mikhail Gusarov

You ([EMAIL PROTECTED]) wrote:

  Ну так купите железную хрень которая часы прихода-ухода прямо на
  карточку печатает.
 A Такая и стоит. Бугалтеров ломает в конце каждой недели набивать
 A данные б эксель. Собственно, из-за того и сыр-бор.

Мнэ. А эту железную хрень к контуперу прикрутить нельзя? Тогда это
неправильная железная хрень.

-- 
JID: [EMAIL PROTECTED]


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: echo string /dev/lp0 vs cups

2006-02-28 Пенетрантность Alexander



А почему две? Так сложно построить триггер? При возникновении третьего
стотояния - пусть вахтер допрашивает, какого фига вы пытаетесь войти на
работу второй раз?


Этот вопрос был в свое время активно провентелирован с руководством и 
сотрудниками ИТ отдела, и решили что капиталовложение на еще один 
считыватель оправдывает упрощение системы и защиту от дурака.


Хмм. что-то я наверное непонимаю, как усложнение системы ( а точнее
дуплицирование) может её упростить и защитить от дурака? 
Наличие двух карточек - это уже усложнение, т.к. прийдеться вспоминать,

какую карточку надо совать в этот терминал.
Карточка одна на на нос, считывателя два. На одном считывателе большими 
буквами написанно ВХОД на другом ВЫХОД.
В качестве альтернатывы - один считываетель а рядом переключатель с 
положениями ВХОД и ВЫХОД. В случае с переключателем еще надо 
изворачиватся как-то связывать его с программой (напоминаю, паралальный 
порт занят), да и тумблер не забывать перекидывать. Вот и усложнение.


Хотелось бы ответить цитатой из классики: Never Trust Anything Except 
Hardcopy. (вытравить эти слова каленым железом на задницах разнообразных 
кое-какеров)


Ага. А чего это все пользуются калькуляторами, вместо перекладывания
ракушек/счетных палочек/чего-то там ?
Це есть компромисс, жертва надежностью в пользу скорости у удобства. В 
случае с калькулятором жертва невелика, я всего пару раз в жизни видел 
глючащие калькуляторы.



PS: Нет, я определнно хочу такого ягеля. мешка три, не меньше.

Приезжай, угощу!



--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: echo string /dev/lp0 vs cups

2006-02-28 Пенетрантность Alexander

Mikhail Gusarov escribió:

You ([EMAIL PROTECTED]) wrote:

  Ну так купите железную хрень которая часы прихода-ухода прямо на
  карточку печатает.
 A Такая и стоит. Бугалтеров ломает в конце каждой недели набивать
 A данные б эксель. Собственно, из-за того и сыр-бор.

Мнэ. А эту железную хрень к контуперу прикрутить нельзя? Тогда это
неправильная железная хрень.
Нет. Хрень железная, ни грамма кремния, разработка тысяча девятсот 
лохматого года.
Собственно, воспроизводим необходимую функциональность с привязкой к 
базе данных.



--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: echo string /dev/lp0 vs cups

2006-02-28 Пенетрантность Mikhail Gusarov

You ([EMAIL PROTECTED]) wrote:

 A Нет. Хрень железная, ни грамма кремния, разработка тысяча девятсот
 A лохматого года.  Собственно, воспроизводим необходимую
 A функциональность с привязкой к базе данных.

Правильная хрень тогда уж и на карточке печатать должна и в контупер
данные отдавать.

-- 
JID: [EMAIL PROTECTED]


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: echo string /dev/lp0 vs cups

2006-02-28 Пенетрантность Иван Лох
On Tue, Feb 28, 2006 at 11:54:48AM -0600, Alexander wrote:
 Mikhail Gusarov escribió:
 You ([EMAIL PROTECTED]) wrote:
 Мнэ. А эту железную хрень к контуперу 
 прикрутить нельзя? Тогда это
 неправильная железная хрень.
 Нет. Хрень железная, ни грамма кремния, 
 разработка тысяча девятсот лохматого 
 года.

Но это не означает, что нет более современных хреней
с такими привязками.

-- 
Иван Лох


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: echo string /dev/lp0 vs cups

2006-02-28 Пенетрантность Иван Лох
On Tue, Feb 28, 2006 at 11:26:24AM -0600, Alexander wrote:
 int cupsPrintFile(const char *name, const char *filename, 
 const char *title, int num_options, cups_option_t *options);;
 Проезжали. Так в файл придется писать, а 
 потом этот файл распечатывать.

Ну так lp тот же cupsPrintFile использует. 

 Кроме того остается нерешенным, что 
 делать с теряющимися первыми буквами 
 Кстати, вроде бы это происходит только 
 при печати в raw.
 Ну так в одном случае это растр, а в 
 другом ascii.
 Да. Причем к программе (или к шеллу)  
 контроль не возвращается пока не включу. 
 Если послать через lpr несколько раз, то 
 съедается только начало первого 
 послания, остальное доходит нормально.
 на саt и посмотрел, что будет. Вообще, cups 
 И parallel backend от силы 200 строчек. 
 ???

С принтером через параллельный порт общается
отдельная _очень_ небольшая программа. Отучить ее 
печатать на выключенный принтер (а она _не должна 
туда печатать_) не бог весть какая задача. Заодно
пошлете bug report -- сделаете доброе дело.
CUPS _в некотором смысле_ прилично документирован.

-- 
Иван Лох


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: echo string /dev/lp0 vs cups

2006-02-28 Пенетрантность Alexander

Иван Лох escribió:

On Tue, Feb 28, 2006 at 11:26:24AM -0600, Alexander wrote:

int cupsPrintFile(const char *name, const char *filename, 
const char *title, int num_options, cups_option_t *options);;


Проезжали. Так в файл придется писать, а 
потом этот файл распечатывать.


Ну так lp тот же cupsPrintFile использует. 
lp можно standard input скармливать, а как скормить char* указанному 
cupsPrintFile я не нашел.


Кроме того остается нерешенным, что 
делать с теряющимися первыми буквами 
Кстати, вроде бы это происходит только 
при печати в raw.

[skip]

С принтером через параллельный порт общается
отдельная _очень_ небольшая программа. Отучить ее 
печатать на выключенный принтер (а она _не должна 
туда печатать_) не бог весть какая задача. Заодно

пошлете bug report -- сделаете доброе дело.
CUPS _в некотором смысле_ прилично документирован.
Посмотрел на это дело, parallel.c, 17k. Не чуствую себя компетентным для 
предложения поправок (:

bug report запостил, кому интересно можете полюбоватся
http://www.cups.org/str.php?L1452


--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: echo string /dev/lp0 vs cups - resolved

2006-02-28 Пенетрантность Alexander



Скажите, я хочу странного? Как можно загнать не файл а string в spool на
распечатку, не прибегая к системному вызову, и чтобы страницу не
выплевывало а переводило каретку и ждало следующей строки?

Был полностью удовлетворен таким:

FILE* printer;
char* string_to_print = A!!!
printer = popen(lpr -l, w);
fprintf(printer, %s\n\r, string_to_print);
pclose(printer);

При этом команду на распечатку можно задать снаружи, например из 
конфигурационного файла.


Спасибо за внимание. (:


--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: echo string /dev/lp0 vs cups

2006-02-27 Пенетрантность Иван Лох
On Sun, Feb 26, 2006 at 09:37:33PM -0600, Alexander wrote:
 День добрый.
 
 Пишу прогу (ansi C) которая, среди всего 
 прочего, должна печатать на
 матричном принтере некое подобие лога.
 Простая запись в /dev/lp0 что-то там\n\r дает 
 приемлемый результат, за
 исключением одного НО. Если принтер 
 выключен на момент запуска
 программы, выполнение останавливается 
 пока что-то (в данном случае
 принтер) не прочтет данные с 
 паралельного порта. Предполагаю, что 
 данная
 проблема решается записью данных не 
 прямо в порт, а в некий спулер.

А нужен ли тут спулер? Он скорее для многозадачности... Я бы назвал
необходимую вещь скорее буфером. FIFO который смотрит на состояние принтера
(есть библиотеки на C на Perl и т. д.) или может быть даже на proc, а потом
тупо печатает в порт. Я правда уже не помню может ли матричный принтер
сообщить что у него кончилась бумага. 

-- 
Иван Лох


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: echo string /dev/lp0 vs cups

2006-02-27 Пенетрантность Victor Wagner
On 2006.02.27 at 09:06:52 -0600, Alexander wrote:

 Читалки магнитных карточек предполагается пока использовать 2, 
 соответственно для выхода и входа. Запись ведется в базу данных, 
 возможно в лог файл, и на принтер. Принтер в данном случае 
 рассматривается как дублирующий узел, для создания hardcopy в наглядной 
 форме. Не бирюльки же считаем, а зарплату, человек должен видеть что его 
  посчитали.

Беда в том что любой спулер работает на уровне страниц, а не строк.

 Victor Wagner escribi??:
 Вроде бы само понятие SPOOL (Simulation of pereferial operations
 on-line) не рассчитано на то, что некоторая задача захватывает ресурс
 надолго и печатает в час по чайной ложке.
 Согласен, но никто захватывать ресурс не собирается. Большую часть 

С точки зрения стандартного спулера - ресурс захвачен - начата печать,
но страница не закончена и не выкинута из принтера.

 Данная задача больше напоминает по логике своей работы вывод на консоль.
 Может быть в эту сторону посмотреть? В ядре есть опция Enable console on
 line printer.
 Мне приходило такое в голову, операция действительно напоминает консоль, 
  но не то.

Почему не то? Вывод логов - типичная задача для консоли. Включить
консоль на line printer и получить устройство по свойствам аналогичное
tty, куда и писать. 


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: echo string /dev/lp0 vs cups

2006-02-27 Пенетрантность Andrey Melnikoff
Alexander [EMAIL PROTECTED] wrote:
 Спасибо за ответы.

 Программа предназначина для считывания магнитных карточек персонала с 
 нерегулярным рабочим днем, и записи в базу данных информации о их 
 приходе и уходе. Потом на основе этой информации расчитывается их 
 зарплата. Рабочий день может начинаться и кончатся в любое время дня и 
 ночи, речь идет о типографии.
 Читалки магнитных карточек предполагается пока использовать 2,
А почему две? Так сложно построить триггер? При возникновении третьего
стотояния - пусть вахтер допрашивает, какого фига вы пытаетесь войти на
работу второй раз?

 соответственно для выхода и входа. Запись ведется в базу данных, 
 возможно в лог файл, и на принтер. Принтер в данном случае 
 рассматривается как дублирующий узел, для создания hardcopy в наглядной 
 форме. Не бирюльки же считаем, а зарплату, человек должен видеть что его 
   посчитали.

А можно глупый вопрос - зачем здесь принтер? Может проще повесить монитор
под стекло, на котором писать Здравствуйте, Иван Петрович Сидиоров, желаем
вам удачного рабочего дня. И человек видит - что его посчитали. А если туда
прикрутить еще и базу данных с днями рождения, то можно и поздравлять :)


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: echo string /dev/lp0 vs cups

2006-02-27 Пенетрантность Alexander

Andrey Melnikoff escribió:

Программа предназначина для считывания магнитных карточек персонала с 
нерегулярным рабочим днем, и записи в базу данных информации о их 
приходе и уходе. Потом на основе этой информации расчитывается их 
зарплата. Рабочий день может начинаться и кончатся в любое время дня и 
ночи, речь идет о типографии.

Читалки магнитных карточек предполагается пока использовать 2,


А почему две? Так сложно построить триггер? При возникновении третьего
стотояния - пусть вахтер допрашивает, какого фига вы пытаетесь войти на
работу второй раз?
Этот вопрос был в свое время активно провентелирован с руководством и 
сотрудниками ИТ отдела, и решили что капиталовложение на еще один 
считыватель оправдывает упрощение системы и защиту от дурака.



А можно глупый вопрос - зачем здесь принтер? Может проще повесить монитор
под стекло, на котором писать Здравствуйте, Иван Петрович Сидиоров, желаем
вам удачного рабочего дня. И человек видит - что его посчитали. А если туда
прикрутить еще и базу данных с днями рождения, то можно и поздравлять :)
Я достаточно долго общался с компьютерами, чтобы научится им не 
доверять. Кроме того, надеюсь, это поможет избежать неприятных ситаций, 
возникновение которых я легко могу себе представить. Например когда 
недобросовестный (или забывчивый) работник подвергнет сомнению 
работоспособность системы вообще и количество своих насчитанных рабочих 
часов в частности.
Хотелось бы ответить цитатой из классики: Never Trust Anything Except 
Hardcopy. (вытравить эти слова каленым железом на задницах разнообразных 
кое-какеров)



--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: echo string /dev/lp0 vs cups

2006-02-27 Пенетрантность Alexander

Victor Wagner escribió:
Читалки магнитных карточек предполагается пока использовать 2, 
соответственно для выхода и входа. Запись ведется в базу данных, 
возможно в лог файл, и на принтер. Принтер в данном случае 
рассматривается как дублирующий узел, для создания hardcopy в наглядной 
форме. Не бирюльки же считаем, а зарплату, человек должен видеть что его 
посчитали.

Беда в том что любой спулер работает на уровне страниц, а не строк.
Исходя из того что я накопал, предполагаю, что спулер занимается 
исключительно фильтрованием документа и передачей его на принтер, а что 
и как там напечатается зависит всецело от формата (т.е. исходных данных 
и конкретного фильтра, в случае raw фильтр отсутствует)
Если посылать ascii текст в raw (опция -l у lpr), то страница не 
выплевывается. Это можно сделать несколько раз подряд разными вызовами, 
и все напечатается на одной и той-же странице (если поместится, конечно).



С точки зрения стандартного спулера - ресурс захвачен - начата печать,
но страница не закончена и не выкинута из принтера.
после cat textfile.txt | lpr -l купс рапортует что name: stdin, status: 
completed, страница не выплюнута и остается в принтере, система готова к 
следующей распечатке, даже если напечатана всего одна строчка. Насколько 
я понял, с тем же успехом можно заменить lpr на lp, только синтакс меняется.



Данная задача больше напоминает по логике своей работы вывод на консоль.
Может быть в эту сторону посмотреть? В ядре есть опция Enable console on
line printer.


Мне приходило такое в голову, операция действительно напоминает консоль, 
но не то.


Почему не то? Вывод логов - типичная задача для консоли. Включить
консоль на line printer и получить устройство по свойствам аналогичное
tty, куда и писать.

О записи в файл-устройство я как-то не подумал, хоти и начинал с этого (:
Пока больше склоняюсь к системному вызову lpr (вкусности с изменением 
шрифтов, печать на удаленный принтер и т.д.)... Если не удовлетворит, 
буду играть с консолью.

Ее можно модулем сделать?
И чтоб никакого мусора туда никто не слал (syslog, stderr, dmesg и т.д.)?
А у нее буффер есть? Если я посылаю что-то на консоль а принтер 
недоступен, это теряется или засылается в буффер пока я не включу принтер?



--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: echo string /dev/lp0 vs cups

2006-02-27 Пенетрантность Victor Wagner
On 2006.02.27 at 11:42:20 -0600, Alexander wrote:

 Victor Wagner escribi??:
 Читалки магнитных карточек предполагается пока использовать 2, 
 соответственно для выхода и входа. Запись ведется в базу данных, 
 возможно в лог файл, и на принтер. Принтер в данном случае 
 рассматривается как дублирующий узел, для создания hardcopy в наглядной 
 форме. Не бирюльки же считаем, а зарплату, человек должен видеть что его 
 посчитали.
 Беда в том что любой спулер работает на уровне страниц, а не строк.
 Исходя из того что я накопал, предполагаю, что спулер занимается 
 исключительно фильтрованием документа и передачей его на принтер, а что 
 и как там напечатается зависит всецело от формата (т.е. исходных данных 
 и конкретного фильтра, в случае raw фильтр отсутствует)

Спулер занимается в первую очередь выстраиванием в очередь заданий от
разных пользователей/процессов. То есть его основная задача заключается
в том, чтобы предотвратить перемешивание на одном листе бумаги
разных текстов


 Если посылать ascii текст в raw (опция -l у lpr), то страница не 

Это фильтры кривые.


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: echo string /dev/lp0 vs cups

2006-02-27 Пенетрантность Yauhen Kharuzhy
On Mon, Feb 27, 2006 at 09:21:15PM +0300, Victor Wagner wrote:
 On 2006.02.27 at 11:42:20 -0600, Alexander wrote:
 
  Victor Wagner escribi??:
  Читалки магнитных карточек предполагается пока использовать 2, 
  соответственно для выхода и входа. Запись ведется в базу данных, 
  возможно в лог файл, и на принтер. Принтер в данном случае 
  рассматривается как дублирующий узел, для создания hardcopy в наглядной 
  форме. Не бирюльки же считаем, а зарплату, человек должен видеть что его 
  посчитали.
  Беда в том что любой спулер работает на уровне страниц, а не строк.
  Исходя из того что я накопал, предполагаю, что спулер занимается 
  исключительно фильтрованием документа и передачей его на принтер, а что 
  и как там напечатается зависит всецело от формата (т.е. исходных данных 
  и конкретного фильтра, в случае raw фильтр отсутствует)
 
 Спулер занимается в первую очередь выстраиванием в очередь заданий от
 разных пользователей/процессов. То есть его основная задача заключается
 в том, чтобы предотвратить перемешивание на одном листе бумаги
 разных текстов

А если страницами обозвать строки?. Тогда не будет никакой разницы :)
Подозреваю, что где-нибудь в фильтрах это можно сделать.

-- 
Best regards,
Yauhen Kharuzhy y.kharuzhy_(at)_sam-solutions.net
  
A: No
Q: Should I quote below my post?


signature.asc
Description: Digital signature


Re: echo string /dev/lp0 vs cups

2006-02-27 Пенетрантность Alexander



Беда в том что любой спулер работает на уровне страниц, а не строк.


Исходя из того что я накопал, предполагаю, что спулер занимается 
исключительно фильтрованием документа и передачей его на принтер, а что 
и как там напечатается зависит всецело от формата (т.е. исходных данных 
и конкретного фильтра, в случае raw фильтр отсутствует)


Спулер занимается в первую очередь выстраиванием в очередь заданий от
разных пользователей/процессов. То есть его основная задача заключается
в том, чтобы предотвратить перемешивание на одном листе бумаги
разных текстов


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


Кстати, у меня все довольно мило запахало через системный вызов:
char* print_buff = printing printing printing;
char* print_comm = lpr -l;
char buf[200];
sprintf(buf, echo \%s\ | %s, print_buf, print_comm);
system(buf);

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



--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: echo string /dev/lp0 vs cups

2006-02-26 Пенетрантность Victor Wagner
On 2006.02.26 at 21:37:33 -0600, Alexander wrote:

 День добрый.
 
 Пишу прогу (ansi C) которая, среди всего прочего, должна печатать на
 матричном принтере некое подобие лога.
 Простая запись в /dev/lp0 что-то там\n\r дает приемлемый результат, за
 исключением одного НО. Если принтер выключен на момент запуска
 программы, выполнение останавливается пока что-то (в данном случае
 принтер) не прочтет данные с паралельного порта. Предполагаю, что данная
 проблема решается записью данных не прямо в порт, а в некий спулер.
 
 Писать свой спулер (для данной задачи) не интересно, поэтому я решил
 использовать что-то стандартное, например cups (одним махом решая
 пробелму распечатки на удаленном принтере). Установил, принтер завелся
 со второго раза, работает удовлетворительно, но я совершенно не понимаю
 с какой стороны к этому делу подступится на предмет распечатки не файла
 (как заведено) а string.

Вроде бы само понятие SPOOL (Simulation of pereferial operations
on-line) не рассчитано на то, что некоторая задача захватывает ресурс
надолго и печатает в час по чайной ложке.

Данная задача больше напоминает по логике своей работы вывод на консоль.
Может быть в эту сторону посмотреть? В ядре есть опция Enable console on
line printer.


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]