[Dicas-L] BrOffice - Abrindo arquivos docx no OpenOffice for Linux
Abrindo arquivos docx no OpenOffice for Linux
Data de Publicação: 15 de Maio de 2008
Assim que a Micro$oft lançou a sua suíte Office 2007 com os novos formatos de arquivos tive um problema muito grande. Os documentos que até então eu acessava normalmente pelo OpenOffice no meu CentOS 5.1 e Fedora 8 passaram a não funcionar mais.
Utilizei duas alternativas, até que eu tivesse um tempo de pesquisar algo um pouco melhor. Não querendo dizer que essa solução que irei apresentar é uma ótima saída, mas vai ajudar. Prosseguimos ...
Acessava meu servidor Windows 2008 via TS, abria o Office 2007, abria o documento, convertia para doc e ai então utilizava no meu OpenOffice.
A solução 1 um dia cansou, muito trabalho. Então comecei a abrir e editar os arquivos na própria suíte Office, gravar como docx, pdf ou doc e enviar para as pessoas envolvidas.
Mas essa história tem um fim um pouco triste. O meu servidor de TS estava com muitos acessos simultaneos o que tornava impraticável a edição de um arquivo por ele, muito lento... Então fui obrigado a achar uma solução para isso. Essa solução ajuda pessoas com o mesmo problema que eu tive e ajuda pessoas (eu também me encaixo nessa parte) que utilizam apenas Linux e não tem um servidor de TS. A minha casa é assim...
Fuçando na Internet, em parceria com o meu amigo google, e após a alegria de ler o título da dica postada no dia 20/04/08, porém quando li confesso que fiquei um pouco triste. Essa dica só afeta OpenOffice rodando no Windows. Acehi um conversor de documentos do Office 2007 para padrões Open Document... O nome do conversor é odf-converter-integrator.
A instalação funcionou da seguinte forma. Lembrando que toda essa dica foi escrita com base na distribuição CentOS 5.0. Para quem utiliza outra distribuição, recomendo a leitura da página do criador.
Baixamos os RPMs odf-converter-integrator e a dependência giflib.
Instalamos os arquivos com o seguinte comando:
# rpm -ivh odf-converter-integrator-0.1.5-1.i386.rpm giflib-4.1.3-7.1.el5.1.i386.rpm
Após a conversão do primeiro arquivo fiquei triste novamente. Quanta tristeza em uma dica só ein ?!?! Os arquivos editados no OpenOffice perdiam suas características, as fontes eram modificadas. Mas opa, esse problema eu já tive antes com o OpenOffice e com navegadores. Então fui na minha Knowledge Base pessoal e prossegui com a instalação de fontes True Type no meu Linux.
Baixei o pacote RPM MicrosoftFonts e instalei, como segue.
# rpm -ivh MicrosoftFonts-1-jen14.noarch.rpm
A CONVERSÃO DO ARQUIVO
Para converter o meu arquivo DOCX para ODT utilizei o seguinte comando.
# /usr/bin/OdfConverter /I teste.docx /DOCX2ODT
Para converter o arquivo ODT para DOCX utilizei o seguinte comando.
# /usr/bin/OdfConverter /I teste.odt /ODT2DOCX
Levei 4 minutos para converter um arquivo DOCX de tamanho 1.8MB com muitas referências e imagens. No final ele ficou com 1.4MB.
Levei 3 minutos para converter o ODT para DOCX novamente e ele manteve seu 1.4MB. O arquivo ficou 99% semelhante ao original. O 1% que não ficou igual eu nem sei o que é, mas sei que ficou diferente pela diferença de tamanho AHUhaUHAuhUA.
Para auxiliar a interação com os arquivos DOCX, criei um shell script que converte, abre o arquivo convertido, e converte novamente para DOCX após acabar a edição, tudo automáticamente.
#Verificando e armazenando o MD5 do aqruivo para utilização futura (1)
MD5DOCX=`md5sum $1`
#Criando um backup do arquivo original. Como diz o meu amigo Doca, sempre tenha backups.
#O backup será gerado com o mesmo nome do arquivo original seguido da extensão .bkp.
echo "Criando backup do arquivo original - $1.bkp"
#Nesse momento acontece a conversão do arquivo docx para odt
echo "Convertendo o documento para ODT"
/usr/bin/OdfConverter /I $1 /DOCX2ODT > /dev/null 2&>1
#Nesse momento invocamos (palavra legal ein) o openoffice abrindo o arquivo já convertido para odt
#Ainda adquirimos o MD5 do arquivo odt
echo "Abrindo o documento"
ODT=`echo $1 | cut -f1 -d.`
MD5ODT=`md5sum $ODT.odt`
/usr/bin/openoffice.org-2.0 $ODT.odt
#Quando o openoffice for finalizado obtemos novamente o MD5 do odt para saber se ele foi modificado ou não.
MD5ODTNEW=`md5sum $ODT.odt`
#Se o arquivo foi modificado será convertido para docx novamente
#Se nao foi modificado, nada será feito
if [ "$MD5ODT" != "$MD5ODTNEW" ] ; then
echo "Convertendo o documento para DOCX"
/usr/bin/OdfConverter /I $ODT.odt /ODT2DOCX > /dev/null 2&>1
echo "Arquivo não modificado"
O script é invocado da seguinte forma.
# NOME_DO_SCRIPT arquivo.docx
Quando o OpenOffice for fechado o script irá converter automáticamente para DOCX novamente.
Vale lembrar que o conversor funciona para os outros formatos da suíte Office 2007 execute o programa /usr/bin/OdfConverter sem parâmetros para verificar a sintexe para cada extensão.