Desenvolvimento - Python

PyODConverter - Conversão em batch de formato de documentos

O processo de conversão de documentos, dependendo do equipamento que você possui, pode ser bastante demorado, pois envolve abrir o arquivo, selecionar alguns menus, opções, etc, e mandar salvar em algum lugar. Se precisamos fazer isto com mais de dez arquivos, o trabalho e o tempo gasto é considerável.

por Rubens Queiroz de Almeida



O processo de conversão de documentos, dependendo do equipamento que você possui, pode ser bastante demorado, pois envolve abrir o arquivo, selecionar alguns menus, opções, etc, e mandar salvar em algum lugar. Se precisamos fazer isto com mais de dez arquivos, o trabalho e o tempo gasto é considerável.

Felizmente, para a suíte de escritórios Broffice.ORG esta tarefa pode ser realizada por meio de um script. O scritp Python PyODConverter faz a automatização da conversão de documentos para diversos formatos. PyODConverter é um acrônimo para Python OpenDocument Converter.

O processo que descrito a seguir foi adaptado ou traduzido, em grande parte, da documentação contida no próprio site de distribuição do script PyODConverter.

Para usarmos o script PyODConverter, precisamos executar o Broffice.org como um serviço, escutando, por padrão, na porta 8100. Para isto, precisamos determinar o local onde o programa Broffice.org está instalado e em seguida, executar o comando:

  $ /opt/broffice.org3/program/soffice --accept=" socket, port = 8100; URP;"

O comando acima reflete as opções padrão de instalação da suíte Broffice.org versão 3, que é feita no diretório /opt/broffice.org3/.

Isto feito, podemos passar às conversões. Para fazer a conversão, um pré-requisito é o software Python Uno Bridge. Este pacote já vem instalado por padrão junto com a versão Python do Broffice.org. Se usarmos esta versão não precisamos nos preocupar com este detalhe.

O próximo passo é fazer o download do script DocumentConverter.py (download da versão local).

Uma vez baixado o script, está tudo pronto para a conversão. O programa determina os formatos de origem e destino analisando os argumentos fornecidos na linha de comando, a partir das extensões dos arquivos.

Por exemplo:

$ /opt/broffice.org3/program/soffice /usr/local/bin/DocumentConverter.py arquivo_entrada.ppt arquivo_saida.pdf

No exemplo acima, o arquivo arquivo_entrada.ppt será convertido para o formato PDF, sendo gerado o arquivo arquivo_saida.pdf.

Para automatizar ainda mais, o melhor é fazer um script bash, com todas as definições. Algo como:

  #!/bin/bash
  
  SOFFICE=/opt/broffice.org3/program/soffice
  DocumentConverter=/usr/local/bin/DocumentConverter.py
  
  if [ $# -ne 2 ]
     then
        echo "Sintaxe: $0 formato_de_entrada formato_de_saida"
        exit
     else
        in=$1
        out=$2
  fi
  
  $SOFFICE --accept="socket, port = 8100; URP;" &
  
  for arquivo in *.$in
  do
    echo "convertendo $arquivo ..."
    $SOFFICE $DocumentConverter $arquivo `echo $arquivo | sed "s/$in/$out/"`
  done

O software PyODConverter é distribuído sob os termos da GNU LGPL.

Rubens Queiroz de Almeida

Rubens Queiroz de Almeida - Mantenedor do site Dicas-L (http://www.dicas-l.com.br).