[DICA]: Impressão em lote de arquivos .ODT (Openoffice) - múltiplas cópias

Iniciado por danpos, 22 de Fevereiro de 2009, 16:00

tópico anterior - próximo tópico

danpos

@All

Estava procurando um meio de imprimir dezenas de arquivos .ODT (documentos do writer da suíte OpenOffice.org) sem ter que abrir arquivo por arquivo no Google e achei a solução, porém para apenas uma (01) via do documento, desde que não há uma opção em linha de comando para mais de uma cópia a ser impressa; então a solução foi apelar para o bash ... ;D

Vejamos:

0.0 Tenha em mente que os arquivos .ODT estejam todos no mesmo diretório; então mude para este diretório no terminal usando o comando "cd";
0.1. Para efeitos desta dica, quando eu escrevo "<ENTER>" (sem aspas), eu estou simbolizando que deve ser premida a tecla <ENTER> do teclado;
0.2 Estando no diretório com os arquivos em questão, então faça a seguinte sequência de comandos do bash:

for passo in $(seq 2) <ENTER>
do <ENTER>
openoffice -p *.odt <ENTER>
done <ENTER>


Relembrando que o <ENTER> significa que após digitar o comando deverá ser premida a tecla <ENTER> para que o comando seja executado e então possa seguir na próxima instrução.

A opção -p envia cada arquivo para a fila de impressão da impressora default; caso tenha mais de uma impressora instalada e queira usar outra opção que não a default, então usar a opção -pt "Nome-da-Impressora-entre-aspas".

É uma dica "boba" mas eu procurei e não achei e pode ser que alguém precisse de algo do tipo, então fica aí para registro e ajudar quem precisar ... ;)

Danpos.

Atualização: após "fuçar" mais um pouco, resolvi modificar a chamada de comandos bash pois a idéia é que para cada documento a ser impresso, seja feito uma cópia (i.e., cada documento deve ser impresso duas vezes antes da impessão do seguinte); assim a sequência que estou usando agora é:

for i in *.odt
do
for passos in $(seq 2)
do
openoffice -p $i 2>/dev/null
done
done


Desta forma, cada arquivo sejá impresso duas vezes (nota - se o número de cópias desejadas for 3, 4, 5, ..., basta mudar "seq 2", para "seq 3", ...., de acordo com o número necessário). o "2>/dev/null" é usado apenas para redirecionar umas mensagens de erro indesejáveis. ;)