Quero imprimir um número de etiquetas especificado pelo usuário sem abrir o Libreoffice

2

Estou usando o Ubuntu em um restaurante. Neste caso, estou usando uma impressora de etiquetas Brother para imprimir etiquetas de data "Use By".

Para imprimir, posso usar o comando libreoffice -p ~/Desktop/TestLabel.odt Eu tenho isso em um script bash executado a partir do Launcher.

Para determinados itens, seria conveniente imprimir vários marcadores de uma só vez, em vez de clicar várias vezes no iniciador.

Existe uma maneira de solicitar uma quantidade ao usuário e imprimi-lo muitas vezes?

Obrigado

    
por caish5 13.02.2015 / 07:42

1 resposta

0

Isso é muito simples com zenity . Expanda o script com um comando como este:

NUMBER=$(zenity --entry --text="How many Labels should be printed?" --entry-text=1)

A variável $ NUMBER agora contém a entrada do usuário. Se o usuário apenas pressionar "OK", ele conterá "1".

Unfortunetly libreoffice não aceita um sinalizador para especificar o número de cópias. Então você tem que executar o comando libreoffice várias vezes ao imprimir várias cópias. Mas, em vez disso, você pode usar o libreoffice para pré-preparar o arquivo e usar lpr para fazer a impressão real:

libreoffice --print-to-file --printer-name printername --outdir /tmp/ file.doc
lpr /tmp/file.ps -${NUMBER} -P printername
rm /tmp/file.ps

lpr aceita um número de cópias flag -# .

EDITAR:

Se lpr não estiver funcionando, basta ligar para o libreoffice várias vezes:

for (( c=1; c<=${NUMBER}; c++ )); do
  libreoffice -p file.doc
done
    
por chaos 13.02.2015 / 08:05