Às vezes, quando estou trabalhando no meu laptop, quero enfileirar alguns documentos para imprimir mais tarde, pois não estou conectado a uma impressora no momento.
No entanto, as filas reais da impressora não foram projetadas para isso; eles imediatamente tentam imprimir o documento e, de repente, começam a imprimir assim que eu chego à rede, o que geralmente não é o que eu quero fazer. Além disso, às vezes eu quero alterar a ordem dos documentos na fila, o que não é muito fácil, principalmente quando alguns deles começam a imprimir.
Além disso, às vezes a impressão falha porque, por exemplo, a impressora fica sem papel ou toner, e desejo reimprimir o documento em uma impressora diferente. Isso não é direto com, por exemplo, CUPS
ou system-config-printer
; Geralmente, preciso voltar, abrir novamente o leitor de PDF e começar de novo. Nenhum dos leitores de PDF que conheço permite que você mantenha uma lista de documentos para imprimir posteriormente, mas esse pode ser um recurso oculto de um leitor de PDF em algum lugar que eu não conheço.
Enfim, aqui está o que eu quero ser capaz de fazer:
- Especifique uma lista de PDFs que quero imprimir.
- Mantenha essa lista em disco para que eu possa fechar o aplicativo ou reiniciar sem perder a lista inteira.
- Especifique as impressoras para as quais quero enviá-las antecipadamente sem estar realmente conectado a essas impressoras no momento.
- Especifique opções de impressão como cores, frente e verso e número de cópias.
- Altere as atribuições da impressora e as opções de impressão posteriormente.
- Aguarde até eu pressionar um botão ou executar um comando para realmente imprimir o (s) documento (s).
- Mantenha uma lista separada de documentos que já foram impressos, caso a impressão não funcione ou que eu queira reimprimi-los mais tarde.
Eu sei que poderia hackear algo junto com um script de shell lpr
e uma lista de caminhos em um arquivo de texto, mas não posso deixar de sentir que esse problema já foi resolvido de uma maneira mais robusta e elegante.
Pontos bônus:
- Não exija que os documentos sejam abertos em um leitor de PDF. Quero imprimi-los, não procurá-los, e não há motivo para que eles tenham o mesmo aplicativo.
- Mais de uma lista.
- Também trabalhe para Postscript, DjVu e outros formatos de descrição de página.
- Arraste e solte dos gerenciadores de arquivos.
Alguma sugestão?
fonte
cups
. Você simplesmente imprimiria na fila de impressora desejada, mas colocaria os trabalhos "em espera" até decidir "liberá-los". O botão "em espera" é tudo o que é necessário. Ou eu sinto falta de alguma coisa?system-config-printer-applet
permite reter e liberar trabalhos de impressão, além de movê-los para outras impressoras, mas não posso alterar a ordem dos trabalhos de impressão nem as opções de impressão após o envio do trabalho. Além disso, nesse ponto, o caminho para o documento original já está longe.Respostas:
O que faço é o seguinte - não é tão versátil quanto você pediu, mas funciona quase bem. Você precisa ter todas as suas impressoras definidas e, em seguida, esses dois scripts:
stop_printers
:start_printers
:Você precisa colocá-los no seu caminho (por exemplo
~/bin
) e torná-los executáveis comchmod +x
. CAVEAT : Não tenho impressora com espaços em seus nomes. Os scripts não são testados nesse caso (mas tenho certeza de que um dos gurus de nossos scripts de shell corrigirá os scripts rapidamente; -) ...)Agora, você pode emitir:
E você pode imprimir de onde quiser, a impressora será pausada:
Você pode ver sua fila:
(AFAIK, as filas de impressão são persistentes nas reinicializações). E quando você deseja imprimir:
Usando
lprm
você pode remover um trabalho, se necessário;lpr
para enfileirar um documento por meio da linha de comando e se você quiser "listas" diferentes, ninguém proíbe definir a mesma impressora várias vezes com nomes diferentes.Você também pode reiniciar cada impressora manualmente, é apenas uma questão de executar a
cupsenable <printername>
partir do prompt.O que eu acho que você não pode fazer com esta solução é alterar as opções de impressão após o fato - você precisará desenfileirar e re-enfileirar o documento para isso.
fonte
cut
parte:cat /etc/printcap | cut -d "|" -f 1 | grep -v "#"
. Você economiza algum tempo de ciclo ao se livrar da traduçãotr
. Isso funciona, desde que você precise apenas do seu primeiro campo.Meu pacote (plugue descarado), duplexpr faz o que você deseja e inclui funções bash que podem ser úteis para rodar sua própria versão. (É codificado no bash, portanto, deve ser relativamente fácil de modificar e ajudarei, se puder.)
Ele foi projetado para emular a impressão dúplex em impressoras não duplex e implementa seu próprio gerenciamento simples de filas de impressão. Possui interfaces GUI e CLI.
A versão atual imprime apenas em frente e verso e funciona apenas com impressoras não-frente e verso, mas uma nova versão está sendo trabalhada para lidar com impressoras com hardware duplex, que basicamente é apenas gerenciamento de impressoras e filas sem o software de emulação duplex. (Eu tenho uma versão alfa disponível de um script que já funciona se alguém quiser entrar em contato comigo diretamente através do projeto, etc.)
O sistema imprime na impressora padrão atual, mas os scripts dplx e duplex aceitam argumentos adicionais que são passados para o lp e podem ser usados para definir quaisquer opções que o lp entenda, como impressora e outras propriedades.
O sistema atualmente lida com arquivos PDF, PostScript e texto sem formatação.
A única coisa que isso não fará é imprimir arquivos criados usando a opção Imprimir em arquivo no Acroread. Esses arquivos simplesmente não funcionam com o lp e eu nunca consegui chamar a atenção de ninguém do upstream para descobrir quais são os problemas.
Pessoalmente, imprimo quase tudo "offline" (usando as opções Imprimir em arquivo compatíveis com a maioria dos aplicativos), mesmo quando minhas impressoras estão disponíveis. Isso me ajuda a me concentrar no que estou fazendo. Mais tarde, quando chego a um ponto de interrupção adequado, imprimo lotes de trabalhos.
Ter uma fila de impressão também é muito bom quando você deseja imprimir outra cópia de algo sem precisar regenerá-la e é essencial para lidar com erros de impressora, como atolamentos ou falta de toner.
fonte
Não parece haver uma solução completa para esse problema, mas aqui está uma função que eu adicionei à minha
.bashrc
que é semelhante à resposta de Rmano acima, com a conveniência adicional do preenchimento automático.fonte