Dica: imprimindo sem cups nem lp

34 views
Skip to first unread message

Maurício CA

unread,
Jan 17, 2011, 7:24:53 PM1/17/11
to archli...@googlegroups.com
Oi, pessoal,

Hoje eu descobri que não preciso do cups pra imprimir. Tendo o
ghostscript instalado, e sendo bla.pdf um arquivo pdf, digite-se:

gs -sPAPERSIZE=a4 -sDEVICE=samsunggdi -o out bla.pdf

e depois

cat out > /dev/usblp0

Esse último comando eu tive que executar como root, não sei como
fazer pra executar como usuário. O "/dev/usblp0" é criado quando
uma impressora usb é plugada, em um kernel devidamente configurado; e
"samsunggdi" é o driver da minha impressora, que eu encontrei rodando
"gs -h".

Legal, né? Sem cups, sem spool, sem configuração via http... Por quê
não contam essas coisas pra gente na documentação pra iniciantes? :)

Abraço,

Maurício


Renato Schmidt

unread,
Jan 17, 2011, 8:20:05 PM1/17/11
to archli...@googlegroups.com
O CUPS/lpd servem como filas de impressão, "dividindo" o recurso do device (no caso a /dev/usblp0). Sem o CUPS/lpd você só pode imprimir um arquivo por vez e teria que gerenciar o recurso (a impressora) manualmente. O CUPS, se não me engano, utiliza o Ghostscript como backend.

Para "imprimir" (ou melhor, acessar o device como usuário não-root), você tem que ver que grupo é dono do device e adicionar-se a ele.

E respondendo a sua pergunta:

>Legal, né? Sem cups, sem spool, sem configuração via http... Por quê não contam essas coisas pra gente na documentação pra iniciantes? :)

Porque gerenciar o device na mão se já existe um daemon que faz isso desde 1975? :)

2011/1/17 Maurício CA <mauricio...@gmail.com>


--
Você recebeu esta mensagem porque você se inscreveu no lista de dicussão do projeto Arch Linux Brasil - http://groups.google.com/group/archlinux-br
Maiores informações e novidades sobre o projeto podem ser vistas em http://www.archlinux-br.org
Para mandar mensagens para o grupo use o email archli...@googlegroups.com. Lembre-se que somente membros podem postar mensagens.
Para se desinscrever deste grupo, envie um email para archlinux-br...@googlegroups.com
Para mais opções. visite este grupo em http://groups.google.com/group/archlinux-br

Renato Schmidt

unread,
Jan 17, 2011, 8:25:04 PM1/17/11
to archli...@googlegroups.com
Desculpem o double post, mas só agora que vi.

>  gs -sPAPERSIZE=a4 -sDEVICE=samsunggdi -o out bla.pdf
Ao invés de usar a opção -o para um arquivo normal, você poderia jogar a saída diretamente para o device (lembre-se, tudo é arquivo no UNIX):
gs -sPAPERSIZE=a4 -sDEVICE=samsunggdi -o /dev/usblp0 bla.pdf

ou então pegar a saída e jogar utilizando os redirecionadores de I/O da shell para jogar a stdout no device (não li o man page do gs nem testei o comando abaixo, mas o conceito é esse):
gs -sPAPERSIZE=a4 -sDEVICE=samsunggdi bla.pdf > /dev/usblp0

Abraços.

2011/1/17 Renato Schmidt <res...@gmail.com>

Robson Roberto Souza Peixoto

unread,
Jan 17, 2011, 9:32:01 PM1/17/11
to archli...@googlegroups.com


2011/1/17 Renato Schmidt <res...@gmail.com>

Desculpem o double post, mas só agora que vi.

>  gs -sPAPERSIZE=a4 -sDEVICE=samsunggdi -o out bla.pdf
Ao invés de usar a opção -o para um arquivo normal, você poderia jogar a saída diretamente para o device (lembre-se, tudo é arquivo no UNIX):
gs -sPAPERSIZE=a4 -sDEVICE=samsunggdi -o /dev/usblp0 bla.pdf

ou então pegar a saída e jogar utilizando os redirecionadores de I/O da shell para jogar a stdout no device (não li o man page do gs nem testei o comando abaixo, mas o conceito é esse):
gs -sPAPERSIZE=a4 -sDEVICE=samsunggdi bla.pdf > /dev/usblp0


Mas pra isso o impressora tem que entender PostScript. Senão não funciona. E existem vários níveis de postscript. Eu acho que essa solução não deve funcionar com todas impressoras.



--
Robson Roberto Souza Peixoto
Robinho
Computer Science Master's degree student, University of Campinas
Linux Counter #395633
IRC: robsonpeixoto
Twitter: http://twitter.com/rrspba
github: https://github.com/robsonpeixoto

Maurício CA

unread,
Jan 17, 2011, 9:41:15 PM1/17/11
to archli...@googlegroups.com
Eu gosto da idéia de redirecionar, mas o /dev/usblp0 pertence ao
root:root. Eu posso alterar as permissões desse arquivo, mesmo ele
sendo gerado automaticamente quando a impressora é plugada e apagado
em seguida?

Quanto ao daemon que faz isso desde 1975... eu não tive competência
pra fazê-lo funcionar :)

Maurício

> Desculpem o double post, mas só agora que vi.

>> gs -sPAPERSIZE=3Da4 -sDEVICE=3Dsamsunggdi -o out bla.pdf


> Ao invés de usar a opção -o para um arquivo normal, você poderia jogar a
> saída diretamente para o device (lembre-se, tudo é arquivo no UNIX):
>

> [...]


>
>> Porque gerenciar o device na mão se já existe um daemon que faz isso desde
>> 1975? :)

>>> Hoje eu descobri que n=E3o preciso do cups pra imprimir. Tendo o


>>> ghostscript instalado, e sendo bla.pdf um arquivo pdf, digite-se:
>>>

>>> gs -sPAPERSIZE=3Da4 -sDEVICE=3Dsamsunggdi -o out bla.pdf


>>>
>>> e depois
>>>
>>> cat out > /dev/usblp0
>>>

>>> [...]

Maurício CA

unread,
Jan 17, 2011, 9:51:00 PM1/17/11
to archli...@googlegroups.com
>> gs -sPAPERSIZE=a4 -sDEVICE=samsunggdi -o /dev/usblp0 bla.pdf

> Mas pra isso o impressora tem que entender PostScript. Senão não


> funciona. E existem vários níveis de postscript. Eu acho que essa
> solução não deve funcionar com todas impressoras.

Não precisa ser postscript, se precisasse não teria graça. O que o gs
faz é transformar o arquivo pdf original (ou postscript) na linguagem
que a impressora entende. No caso, a opção '-sDEVICE=samsunggdi'
gera comandos que algumas impressoras da samsung entendem, como é
o caso da minha. Executando 'gs -h' você vê uma lista de todas
as alternativas.

Abraço,
Maurício

Renato Schmidt

unread,
Jan 17, 2011, 11:24:51 PM1/17/11
to archli...@googlegroups.com
O CUPS é (era) para ser uma das coisas mais plug-and-play do Linux,
por isso achei estranho você dizer que não consegue fazer funcionar.
Dei uma investigada nas wikis e fórum e achei uma coisa interessante
que é bem provável que está afetando aí:

Na wiki EN sobre o cups diz que "USB printer users may need to
blacklist the usblp module. Keep in mind that there seems to be a lot
of uncertainty regarding blacklisting usblp, as some USB printers,
including some Canon and Epson printer series, are not recognized
without it. Several user reported issues with Samsung printers when
using cups with blacklisted usblp module, the solution was to
re-enable usblp and install cups-usblp from aur instead of regular
cups package (https://bbs.archlinux.org/viewtopic.php?pid=778104)"
<https://wiki.archlinux.org/index.php/Cups#USB_printers>

Como ao plugar a impressora é criado o device /dev/usblp0, assumo que
o usblp está subindo, o que causa o conflito com o CUPS 1.4.
A solução, de acordo com o fórum é remover o cups e instalar a versão
cups-usblp do AUR.
<https://bbs.archlinux.org/viewtopic.php?pid=773377#p773377>

Agora, se você quiser brincar com as coisas oldschool do UNIX e fazer
do jeito tradicional, vai precisar do LPRng, apsfilter ou então
configurar na mão o filtro de impressão pra usar o ghostscript. É mais
legal... *corre*

Abraços


2011/1/18 Maurício CA <mauricio...@gmail.com>

Robson Roberto Souza Peixoto

unread,
Jan 18, 2011, 4:12:54 AM1/18/11
to archli...@googlegroups.com


2011/1/18 Renato Schmidt <res...@gmail.com>

O CUPS é (era) para ser uma das coisas mais plug-and-play do Linux,
por isso achei estranho você dizer que não consegue fazer funcionar.
Dei uma investigada nas wikis e fórum e achei uma coisa interessante
que é bem provável que está afetando aí:

Na wiki EN sobre o cups diz que "USB printer users may need to
blacklist the usblp module. Keep in mind that there seems to be a lot
of uncertainty regarding blacklisting usblp, as some USB printers,
including some Canon and Epson printer series, are not recognized
without it. Several user reported issues with Samsung printers when
using cups with blacklisted usblp module, the solution was to
re-enable usblp and install cups-usblp from aur instead of regular
cups package (https://bbs.archlinux.org/viewtopic.php?pid=778104)"
<https://wiki.archlinux.org/index.php/Cups#USB_printers>

Como ao plugar a impressora é criado o device /dev/usblp0, assumo que
o usblp está subindo, o que causa o conflito com o CUPS 1.4.
A solução, de acordo com o fórum é remover o cups e instalar a versão
cups-usblp do AUR.
<https://bbs.archlinux.org/viewtopic.php?pid=773377#p773377>

Agora, se você quiser brincar com as coisas oldschool do UNIX e fazer
do jeito tradicional, vai precisar do LPRng, apsfilter ou então
configurar na mão o filtro de impressão pra usar o ghostscript. É mais
legal... *corre*


*olha a pedra*
Infelizmente no arch o esquema não tá plug-and-play =/ . Eu já vi distro debian-like e fedora-like configura a impressora só plugando ela na USB. O resto o cups faz sozinho.
O system-config-printer nesses sistemas descobre e já configura todas as impressoras que estão públicas na rede. O negócio é massa.
É algo que se portado pro Arch seria muito bala.

Denis A. Altoé Falqueto

unread,
Jan 18, 2011, 5:31:37 AM1/18/11
to archli...@googlegroups.com
2011/1/18 Robson Roberto Souza Peixoto <robson...@gmail.com>:

> *olha a pedra*
> Infelizmente no arch o esquema não tá plug-and-play =/ . Eu já vi distro
> debian-like e fedora-like configura a impressora só plugando ela na USB. O
> resto o cups faz sozinho.
> O system-config-printer nesses sistemas descobre e já configura todas as
> impressoras que estão públicas na rede. O negócio é massa.
> É algo que se portado pro Arch seria muito bala.

Eu uso Arch aqui no trabalho e temos uma multifuncional Samsung que
funciona bem com o cups. Mas é impressora de rede (alias, ele mostra
as impressoras que ele encontrou na rede tb, apesar de que aqui isso
atrapalhe mais do que ajude :). Eu imagino que o seu problema seja
realmente com o usblp. Dá uma olhada no wiki, se é que você já não fez
isso.

--
R: Porque prejudica a legibilidade do texto.
P: Porque é ruim colocar a resposta de um e-mail antes do texto citado?

-------------------------------------------
Denis A. Altoe Falqueto
Linux user #524555
-------------------------------------------

Robson Roberto Souza Peixoto

unread,
Jan 18, 2011, 6:04:37 AM1/18/11
to archli...@googlegroups.com


2011/1/18 Denis A. Altoé Falqueto <denisf...@gmail.com>

2011/1/18 Robson Roberto Souza Peixoto <robson...@gmail.com>:
> *olha a pedra*
> Infelizmente no arch o esquema não tá plug-and-play =/ . Eu já vi distro
> debian-like e fedora-like configura a impressora só plugando ela na USB. O
> resto o cups faz sozinho.
> O system-config-printer nesses sistemas descobre e já configura todas as
> impressoras que estão públicas na rede. O negócio é massa.
> É algo que se portado pro Arch seria muito bala.

Eu uso Arch aqui no trabalho e temos uma multifuncional Samsung que
funciona bem com o cups. Mas é impressora de rede (alias, ele mostra
as impressoras que ele encontrou na rede tb, apesar de que aqui isso
atrapalhe mais do que ajude :). Eu imagino que o seu problema seja
realmente com o usblp. Dá uma olhada no wiki, se é que você já não fez
isso.


Eu já fiz isso, mas não funcionou no meu, não. Atualmente eu tou sem ambiente pra testar isso e tou com preguiça de montar um em casa.
Quando eu tiver oportunidade eu vou tentar mais uma vez.

[ ]s
 
--
R: Porque prejudica a legibilidade do texto.
P: Porque é ruim colocar a resposta de um e-mail antes do texto citado?

-------------------------------------------
Denis A. Altoe Falqueto
Linux user #524555
-------------------------------------------

--
Você recebeu esta mensagem porque você se inscreveu no lista de dicussão do projeto Arch Linux Brasil - http://groups.google.com/group/archlinux-br
Maiores informações e novidades sobre o projeto podem ser vistas em http://www.archlinux-br.org
Para mandar mensagens para o grupo use o email archli...@googlegroups.com. Lembre-se que somente membros podem postar mensagens.
Para se desinscrever deste grupo, envie um email para archlinux-br...@googlegroups.com
Para mais opções. visite este grupo em http://groups.google.com/group/archlinux-br
Reply all
Reply to author
Forward
0 new messages