Pesquisa de site

Controle sua impressora a partir de um terminal Linux com o comando lp


Principais conclusões

  • Imprimir a partir da linha de comando com lp pode ser útil para enviar arquivos diretamente para a impressora sem abrir um aplicativo.
  • A maioria das distribuições inclui lp, mas pode ser necessário instalá-lo usando comandos como "sudo apt install cups".
  • Usar lpstat, lpoptions e lpinfo pode ajudá-lo a encontrar informações sobre sua impressora e enviar trabalhos de impressão a partir da linha de comando com opções de layout.

O comando Linux lp permite imprimir a partir de uma janela de terminal. Você pode enviar trabalhos de impressão manualmente ou por meio de scripts, definir a orientação da página e outras preferências e listar os recursos da sua impressora.

Por que imprimir na linha de comando?

Usando nada mais do que meu superpoder de suposição, acho que é provável que a maior parte da impressão em computadores Linux em ambientes domésticos seja feita dentro de um aplicativo GUI.

Claro, existem aplicativos de interface de usuário baseados em texto (TUI) que também suportam impressão. Eles são executados dentro de uma janela de terminal e permitem enviar conteúdo para sua impressora. Mesmo assim, espero que a maior parte da impressão venha de aplicativos GUI.

Imprimir arquivos de texto a partir da linha de comando, fora de qualquer aplicativo, não é uma atividade cotidiana para a maioria das pessoas, mas é algo que pode ser útil. Você não precisa iniciar um programa, carregar o arquivo, clicar em imprimir e fechar o aplicativo novamente. Com o comando lp, você pode enviar o arquivo diretamente para a impressora a partir da linha de comando.

Isso é útil até certo ponto, mas é útil quando você tem um script de shell que precisa imprimir algo. Imprimir arquivos existentes ou imprimir arquivos criados pelo próprio script é fácil com lp e sua família de programas de suporte.

Um ponto que você precisa entender é que você não pode enviar nenhum tipo de arquivo antigo para a impressora. Por exemplo, você não pode enviar um arquivo ODT para a impressora porque ele não está em um formato que a impressora entenda. Quando você abre um documento ODT no LibreOffice e o imprime, o LibreOffice envia uma versão traduzida do arquivo para a impressora, para que a impressora possa entender e agir de acordo. A impressão de que estamos falando aqui é melhor usada com arquivos de texto.

Instalando o lp

A maioria das distribuições inclui lp e outros comandos relacionados à impressora prontos para uso. Se você precisar instalá-los, estes são os comandos que você precisará.

No Ubuntu, você precisa digitar:

sudo apt install cups

No Fedora use este comando:

sudo dnf install cups

O comando para Manjaro é:

sudo pacman -S cups

Descobrindo mais sobre sua impressora

O comando lp possui alguns comandos aliados úteis. Um deles é o lpstat, que pode encontrar informações sobre sua impressora.

Usado sem nenhuma opção de linha de comando, lpstat exibe a fila de impressão.

lpstat

A opção -p (impressoras) lista as impressoras configuradas e seus status, como inativo ou imprimindo.

lpstat -p

A opção -d (padrão) mostra a impressora padrão. Para obter uma resposta útil deste comando, você precisará ter uma impressora configurada como dispositivo padrão. Só porque você tem apenas uma impressora, isso não significa que ela seja o padrão.

lpstat -d

O comando lpoptions lista as opções suportadas pela sua impressora. Se nenhuma impressora for especificada, a impressora padrão será descrita.

lpoptions

Para conhecer uma impressora específica, você pode passar o nome na linha de comando, usando a opção -p (impressora). Como temos apenas uma impressora conectada e é a impressora padrão, obteremos o mesmo resultado de antes.

lpoptions -p Lexmark_B2442dw

Observe que o nome a ser usado pode ser encontrado usando a saída lpstat -p.

Para tornar a saída do comando lpoptions mais legível, você pode passá-la pelo comando column. Se lhe dissermos para iniciar uma nova linha sempre que encontrar espaços em branco, obteremos um formato colunar aproximado e pronto que é muito mais fácil de analisar.

lpoptions -p Lexmark_B2442dw | column -t -o $'\n'

O comando lpinfo pode ser usado com a opção -v (detalhado) para fornecer detalhes de conexão para impressoras detectadas. As impressoras que podem usar cada protocolo são exibidas.

lpinfo -v

Agora que conhecemos nossa impressora, podemos enviar trabalhos de impressão para ela.

Criando trabalhos de impressão com lp

O comando lp é aquele que realmente envia os trabalhos de impressão para a impressora.

Podemos dar uma olhada rápida na fila de impressão com lpq.

lpq

Estamos começando com uma fila de impressão vazia. Para enviar um trabalho, utilizamos o comando lp, seguido do nome do arquivo.

lp sample-file-1.txt

Se você for rápido o suficiente ou se o arquivo for grande o suficiente, você pode usar o lpq para verificar se o trabalho chegou à fila de impressão.

lpq

Podemos adicionar mais trabalhos à fila e eles serão tratados em ordem pela impressora à medida que avança na carga de trabalho.

lp sample-file-2.txt
lpq

Se o seu arquivo tiver espaços no nome, coloque o nome do arquivo entre aspas ou use a expansão de tabulação para completar o nome para você. A expansão da guia escapa automaticamente dos espaços para você.

lp "sample file 3.txt"
lpq

Se você precisar de várias cópias de um documento, use a opção -n (cópias) seguida do número de cópias necessárias.

lp -n 15 sample-file-1.txt
lpq

Observe que você não vê 15 entradas na fila de impressão. O trabalho é enviado para a impressora uma vez, com instruções para imprimi-lo 15 vezes.

Para economizar papel, e se a sua impressora suportar, você pode imprimir em frente e verso. Você pode optar por virar as páginas nas bordas longa ou curta. Fazemos isso usando a opção -o (opções) e passando o nome da opção que queremos usar – no nosso caso, “lados” – e quaisquer parâmetros para essa opção.

Vamos imprimir algo frente e verso, com as páginas viradas na borda longa.

lp -o sides=two-sided-long-edge sample-file-1.txt

Para que as páginas sejam impressas de forma que sejam viradas na borda curta, usamos o parâmetro two-sided-short-edge.

lp -o sides=two-sided-short-edge sample-file-1.txt

Selecionar paisagem ou retrato é igualmente fácil. Usamos a opção -o (opções) mais uma vez e especificamos retrato ou paisagem.

lp -o landcape sample-file-1.txt

Existem muitas outras opções que você pode usar com a opção -o (opções). Confira a página de manual se você estiver interessado. Você pode achar algumas das opções úteis.

  • job-sheets=name: Imprime uma folha de rosto. Substitua o nome por um classificado, confidencial, secreto, padrão, ultrassecreto ou não classificado.
  • media=size: Define o tamanho do papel. Os tamanhos típicos são "a4", "carta" e "ofício".
  • number-up=number: o número pode ser 2, 4, 6, 9 ou 16. Isso determina quantas páginas de entrada estão amontoadas em uma página de saída.
  • print-quality=quality: o valor da qualidade pode ser 3 (rascunho), 4 (normal) ou 5 (melhor).

Cancelando trabalhos de impressão

Para cancelar um trabalho de impressão, você precisa saber o número do trabalho. Você pode encontrar isso na saída do comando lpq.

O comando que precisamos é cancelar, seguido do número do trabalho.

lpq
cancel 16
lpq

Você pode cancelar vários trabalhos de uma só vez.

lpq
cancel 15 17
lpq

Agora esvaziamos a fila de impressão.

Cópia impressa, isso

Ser capaz de controlar sua impressora a partir da janela do terminal permite imprimir a partir da linha de comando com um certo grau de controle sobre o layout da página e o manuseio do papel, mas isso realmente se destaca quando você precisa imprimir a partir de um script de shell.