LINUX.ORG.RU

Re: Как отменить печать на принтере?

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

simba ()

Re: Как отменить печать на принтере?

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

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

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

gr_buza ★★★★ ()
Ответ на: Re: Как отменить печать на принтере? от metek

Re: Как отменить печать на принтере?

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

anonymous ()
Ответ на: Re: Как отменить печать на принтере? от anonymous

Re: Как отменить печать на принтере?

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

anonymous ()
Ответ на: Re: Как отменить печать на принтере? от anonymous

Re: Как отменить печать на принтере?

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 ★★ ()
Ответ на: Re: Как отменить печать на принтере? от Chumka

Re: Как отменить печать на принтере?

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

Murr ★★ ()
Ответ на: Re: Как отменить печать на принтере? от anonymous

Re: Как отменить печать на принтере?

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

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

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

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