Como converter libreoffice ODT para PDF em bash

7

Estou usando o libreoffice no CentOS 6. Posso converter arquivos ODT para PDF com:

libreoffice --headless --convert-to pdf *.odt mas o problema é que ele só funciona quando nenhum documento está aberto no libreoffice.

Quando eu especificar --env:UserInstallation=file:///path/to/some/directory como sugerido em um dos comentários de essa pergunta , não ajuda.

O que estou fazendo de errado? É um incômodo fechar todas as instâncias do libreoffice antes de executar o comando before.

    
por Johan 18.04.2015 / 14:04

2 respostas

7

Isso é improvável que funcione, já que a sugestão no comentário é incompleta (você não pode simplesmente especificar algum diretório) e incorreta ( --env:... deve ser -env:.. . Aqui está o que eu recomendo que você faça:

  1. Pare todas as instâncias do libreoffice
  2. Inicie o libreoffice a partir da linha de comando sem especificar --headless :

    libreoffice -env:UserInstallation=file:///home/username/.config/libreoffice-alt
    

    você deve substituir /home/username pelo seu diretório home (e ajustar .config se você não tiver isso no seu CentOS, eu fiz isso no Ubuntu e no Linux Mint). O acima irá criar um novo diretório de configuração para o libreoffice alternativo no seu diretório .config, sem o qual você obteria algum erro sobre o java não ser encontrado.

  3. Saia dessa instância do libreoffice
  4. Esse diretório /home/username/.config/libreoffice-alt agora deve ter sido criado para você.

Agora inicie outro libreoffice na linha de comando (isso permite que você veja algumas mensagens úteis se algo der errado ao iniciar a segunda instância), sem o -env:... e, enquanto isso ainda estiver em execução, inicie a conversão usando:

libreoffice -env:UserInstallation=file:///home/username/.config/libreoffice-alt --headless --convert-to pdf *.odt
    
por 18.04.2015 / 14:37
7

Uma abordagem possível é instalar unoconv (se ainda não estiver instalado) e

unoconv file.odt

Por favor, veja man unoconv para detalhes

unoconv is a command line utility that can convert any file format that LibreOffice can import, to any file format that LibreOffice is capable of exporting. unoconv uses the LibreOffice’s UNO bindings for non-interactive conversion....

Em algumas plataformas também é necessário instalar libreoffice-headless \ thanks {Aaron}

    
por 18.04.2015 / 14:38