Pior do que o erro é não ter nada - Gerar PDF

3 respostas
ranophoenix

Bom dia pessoal!!

Estou com um objetivo que é converter documentos (doc, rtf, jpg, etc) para pdf.

Requisitos:

  • Rodar nos servidores Linux que temos aqui;

  • Via linha de comando, pois será um processamento em lote disparado por uma classe java.

    Já estou há uma semana batendo a cabeça nesse problema. Comecei baixando impressoras virtuais para o windows para ver se tinha uma luz e nada veio. Todas abriam uma janela para entrada de parâmetros, não oferecendo as mesmas opções via linha de comando.

    No bom e velho Linux, testei o Cups-pdf. Também não deu certo. Dava muito problema da conversão de formatos do Tio Bill.

    Foi quando me veio uma luz essa semana. O OpenOffice exporta para pdf qualquer formato que ele suporte e é feito em java. Foi quando tentei encontrar um jeito de usar as classes dele para gerar o tão esperado PDF.

Encontrei a API UNO. Parecia ser a solução, e no windows realmente foi. Via linha de comando iniciava um serviço utilizando o soffice que fica ouvindo em uma porta especificada por mim. Daí minha classe java faz a conexão e BELEZA TENHO MEU PDF.

Quando cheguei no Linux, decepção. Como é um servidor não tenho o X instalado nele. Mas esse problema, aparentemente foi fácil de resolver, instalei o Xvfb. Inicio o serviço, ele aparece na lista de processos, mas no netstat ele não está ouvindo. Minha classe java que estava funcionando belezinha, agora só exibe o erro “Connection Refused”.

Pesquisei em dezenas de sites o que poderia estar acontecendo. E descobri que a partir do OpenOffice 2.0 ele não ficava mais no modo listening no linux daquela forma (outra decepção, achava que o OpenOffice era multiplataforma mesmo). Dai então encontrei o que seria um exemplo que seria a forma correta de se chamar um serviço do OpenOffice. Mais uma vez só funcionou no Windows. No linux, mais uma vez, não gerar erro algum e a minha classe java aparece na lista de processos com um Sl+.

Alguém tem alguma idéia do que pode ser!?

3 Respostas

O

Nos News do java.net saiu uma nota falando deste projeto:

JOOConverter

Não testei, mas pareceu interessante…

ranophoenix

Valeu oyama! Realmente parecer ser muito interessante. Vou começar a testar! :wink:

ranophoenix

O problema deve estar no linux mesmo… :frowning:

O jooconverter precisa que o openoffice esteja ouvindo na porta 8100. E o meu problema é justamente esse, no linux não ouve. Só fica assim:

# netstat -nap | grep office
 
 unix  2      [ ACC ]     STREAM     LISTENING     2117629
 12892/soffice.bin  
 /tmp/OSL_PIPE_0_SingleOfficeIPC_bfa67ba891bd9b76f67a649f29db7e59
 
 unix  3      [ ]         STREAM     CONNECTED     2117625 12892/soffice.bin

O jeito vai ser ir pro Windows mesmo. :frowning:

Criado 26 de julho de 2006
Ultima resposta 26 de jul. de 2006
Respostas 3
Participantes 2