LINUX.ORG.RU

Думал бы сначала. Как задание с принтера уберешь, если оно уже не в очереди, кроме как перезапуском принтера?

simba
()
Ответ на: комментарий от simba

simba:

Вот об этом вопрос и стоит. Винда то это как-то делает.

anonymous
()

тут пролетал подобный топик, поройся в архивах

AFAICR попробуй прибить купс и грохнуть все лишнее в тмп.

ну и само собой вырубить принтер :))

gr_buza ★★★★
()
Ответ на: комментарий от metek

Дорогие друзья, это все не годится. Принтер включать и выключать - накладно(он тормозной, кроме того HAL медленно его поднимает). Остановка CUPS же не очищает буфер принтера.

anonymous
()
Ответ на: комментарий от anonymous

А кто производитель принтера, и на каком языке он принимает задания? Если принтер поддерживает PJL, то задания можно отменять из программ, для этого нужно отправить принтеру команду на языке PJL для отмены задания. Вот только CUPS такое не плддерживает.

anonymous
()
Ответ на: комментарий от anonymous

anonymous:

Принтер - Epson R200. Язык даже не знаю.

Путем вглядывания в код usblp удалось добиться нужного результата:

#include <sys/ioctl.h>
#include <fcntl.h>
#include <string.h>
#include <stdio.h>
#include <errno.h>
main() {
#define IOCNR_SOFT_RESET 7
    int fd = open("/dev/usb/lp0", O_RDONLY), rc;

    if (fd == -1) {
        fprintf(stderr, "could not open printer device due to: %s\n", strerror(errno));
        return -1;
    }

    rc = ioctl(fd, _IO('P',IOCNR_SOFT_RESET), 0);
    printf("Performed with status %d (%s)\n", rc, rc?strerror(rc):"OK");

    close(fd);

    return 0;
}


Еще бы найти универсальное решение, желательно из GUI...

Murr ★★
()
Ответ на: комментарий от Chumka

Ну да, именно для них. Универсальный способ я пока не нашел. Во всяком случае KDE printing system перерыл, в cups вроде тоже ковырялся.

Murr ★★
()
Ответ на: комментарий от anonymous

Если у тебя USB принтер, то можешь попробовать поэкспериментировать, вставить это в файл prtstop.c
gcc prtstop.c -o prtstop

Потом принтер можно сбрасывать
/etc/init.d/cups stop (без этого будет EBUSY)
./prtstop

P.S. Еще не факт, что на любом USB принтере это будет работать. Но на Epson R200 работает.

Murr ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.