Estou tentando fazer uma sistema simples para converter arquivos do tipo .DOC para .PDF
Procurei várias formas e inclusive li sobre alguns post aqui mesmo no GUJ, onde encontrei a dica para utilizar o JODConverter.
Então, fiz o sistema e funcionou corretamente na minha máquina desktop, porém estou tentando rodá-lo no servidor Linux/Debian…
O problema é que o jodconverter utiliza as bibliotecas do OpenOffice e para habilitá-las tem que executar uma linha de comando:
/usr/lib/openoffice/program/soffice.bin -headless -accept=“socket,host=localhost,port=8100,tcpNoDelay=1;urp;”
Isso faz OpenOffice ficar escutando a porta 8100, através do netstat é possível confirmar:
Mas quando executo este comando no servidor, ocorre o seguinte erro:
/usr/lib/openoffice/program/soffice.bin X11 error: Can't open display: :0.0
Set DISPLAY environment variable, use -display option
or check permissions of your X-Server
(See "man X" resp. "man xhost" for details)
Alguém já passou pelo mesmo problema??? Sugere alguma coisa?
Bom… apesar de ninguém ter respondido eu consegui resolver o problema!
Sei que o tópico não tem haver intereiramente com Java, porém, há mtos programadores que entendem de plataforma… Até porque é interoperabilidade é extremamente necessária, por isso que postei está dúvida aqui.
Para funcionar o openoffice em um servido linux sem a interface gráfica é necessário instalar outro pacote dele que se chama: openoffice.org-headless
Além, deste pacote é necessário instalar o pacote: openoffice.org-java-common
Depois configure o caminho do JRE nas variáveis de ambiente. (Editar arquivo: /etc/profile) E, em seguida, recompile os caminhos: source /etc/profile
Para executar um processo Runtime no java sem dar o erro de: “Conection refuse”, crie um arquivo dentro de /usr/local/bin com um nome qualquer, por exemplo: start_office, dentro deste arquivo coloque o comando para o openoffice escutar a porta 8100: (Detalhe, não esqueça de mudar as permissões no arquivo)
/usr/lib/openoffice/program/soffice.bin -headless -accept=“socket,host=localhost,port=8100,tcpNoDelay=1;urp;”
salve e saia. Aí através da chamada de processo no Java, coloque: Process p = Runtime.getRuntime().exec(“start_office”); p.waitFor(); /* realiza conversão */ p.destroy();
Reinicie o servidor para que ele pegue as configurações das variáveis de ambiente…