JODConverter (para Java OpenDocument Converter) é uma ferramenta amplamente utilizada para automatização conversões de documentos. unoconv é uma ferramenta Python com um propósito semelhante. Leia aqui detalhes sobre por que você deve considerar mudar para o backend Collabora Online da JODConverter ou fale conosco sobre Collabora Online. Os formatos suportados por estas ferramentas incluem OpenDocument, PDF, HTML, formatos do Microsoft Office (DOC/DOCX/RTF, XLS/XLSX, PPT/PPTX) e muitos outros. Eles podem ser usados como uma biblioteca Java/Python, como uma ferramenta de linha de comandos ou como um aplicativo web. As versões mais recentes têm um backend JODConverter que usa Collabora Online em vez de LibreOffice diretamente.
Quais são os benefícios de usar o Collabora Online para conversão de documentos?
- Desempenho melhorado em comparação com a abordagem de inicialização-conversão-desligamento.
- A API REST é mais confiável do que iniciar o LibreOffice no modo servidor e se comunicar via UNO remoto
- Mais seguro porque a conversão acontece em um ambiente isolado e essa abordagem em camadas protege sua infraestrutura (de camadas externas para internas):
- É fácil executá-lo em uma máquina virtual / contentor do Docker
- Isolamento de dados de documentos em chroots por documento
- Seccomp-bpf: dentro desse chroot (quase) nenhuma chamada do sistema é permitida
- Sistema de arquivos extremamente esparso dentro do chroot: sem shell etc.
BenefitJODConverterunoconvCollabora Online
Muitos formatos de arquivos | Sim | Yes | Sim |
Custo de inicialização único | Não | No | Sim |
API REST padrão | Não | Não | Sim |
Isolamento fácil em VM / docker | Não | Não | Sim |
Isolamento de documentos | Não | Não | Sim |
Filtro de syscall | No | Não | Sim |
Sparse filesystem | Não | Não | Sim |
Isso significa que você tem melhor desempenho e melhor segurança ao converter documentos com o Collabora Online.
Desempenho
O primeiro gráfico mostra como o Collabora Online se sai em comparação com o backend e o unoconv do JODConverter quando consideramos o threading e medimos o número de documentos convertidos durante um segundo:
Quer experimentar e configurar o CODE? Pegue aqui!
Você pode ver que o Collabora Online não só tem um desempenho superior de início, mas também escala melhor à medida que você usa mais threads. (Comparamos invocações curl para Collabora Online com invocações de linha de comando Java de JODConverter e invocações de linha de comando Python de unoconv.)
Construção
Se você quiser experimentar o JODConverter com seu backend Collabora Online:
git clone https://github.com/sbraconnier/jodconverter cd jodconverter sh gradlew build -x integTest distZip cd build/distributions unzip jodconverter-cli-*.zip cd jodconverter-cli-*/
Execução
- Exemplo:
bin/jodconverter-cli -c https://localhost:9980/ -f pdf README.txt
- O formato de entrada é detetado automaticamente, -f determina o formato de saída.
- O URL é o URL do seu servidor Collabora Online, é o valor https:// do guia de instalação.
Usando diretamente a API REST do Collabora Online
- Caso você ainda não esteja utilizando JODConverter, pode usar a API REST diretamente. Por exemplo:
curl -F "data=@test.txt" https://localhost:9980/lool/convert-to/pdf > out.pdf
curl -F "data=@test.txt" https://localhost:9980/lool/convert-to/png > out.png
- Em alternativa, você pode usar formulários HTML para especificar o formato. Por exemplo:
curl -F "data=@test.txt" -F "format=pdf" https://localhost:9980/lool/convert-to > out.pdf
Formatos suportados
Formatos de entarda suportados:
Documentos | Formatos de entrada |
---|---|
Documentos de Writer | sxw (ver), odt e fodt (editar) |
Documentos do Calc | sxc (ver), ods e fods (editar) |
Documentos do Impress | sxi (ver), odp e fodp (editar) |
Documentos do Draw | sxd (ver), odg e fodg (editar) |
Documentos do Chart | odc (editar) |
Documentos de texto master | sxg (ver), odm (editar) |
Documentos modelo de texto | stw (ver), ott (editar) |
Documentos de texto master para Writer | otm (editar) |
Documentos modelo de planilha | stc (ver), ots (editar) |
Documentos modelo de apresentação | sti (ver), otp (editar) |
Documentos modelo do Drawing | std (ver), otg (editar) |
Documentos do Base | odb (editar) |
Extensões | oxt (editar) |
MS Word | doc e dot (editar) |
MS Excel | xls (editar) |
MS PowerPoint | ppt (editar) |
processamento de palavras OOXML | dotx e dotm (ver), docx e docm (editar) |
planilha OOXML | xltx e xltm (ver); xlsx, xlsb e xlsm (editar) |
apresentação OOXML | pptx, pptm, potx, potm (editar) |
Outros | wpd, pdb, hwp, wps, wri, wk1, cgm, dxf, emf, wmf, cdr, vsd, pub, vss, lrf, gnumeric, mw, numbers, p65, pdf, jpg, jpeg, gif, png, etc (ver) |
Outros | dif, slk, csv, dbf, oth, rtf, txt, etc (editar) |
Formatos de saída suportados para Writer/Calc/Impress:
Documentos | Formatos de saída |
---|---|
Writer | doc para MS Word 97, docm para MS Word 2007 XML VBA, docx para MS Word 2007 XML, fodt for OpenDocument Text Flat XML, html para HTML (StarWriter), odt para writer8, ott para writer8_template, pdf para writer_pdf_Export, rtf para Rich Text Format, txt for Text, xhtml para XHTML Writer File, png for writer_png_Export |
Calc | csv for Text – txt – csv (StarCalc), fods para OpenDocument Spreadsheet Flat XML, html para HTML (StarCalc), ods para calc8, ots para calc8_template, pdf para calc_pdf_Export, xhtml para XHTML Calc File, xls para MS Excel 97, xlsm para Calc MS Excel 2007 VBA XML, xlsx para Calc MS Excel 2007 XML, png para calc_png_Export |
Impress | fodp para OpenDocument Presentation Flat XML, html para impress_html_Export, odg for impress8_draw, odp para impress8, otp para impress8_template, pdf para impress_pdf_Export, potm para Impress MS PowerPoint 2007 XML Template, pot para MS PowerPoint 97 Vorlage, pptm para Impress MS PowerPoint 2007 XML VBA, pptx para Impress MS PowerPoint 2007 XML, pps para MS PowerPoint 97 Autoplay, ppt para MS PowerPoint 97, svg para impress_svg_Export, swf para impress_flash_Export, xhtml para XHTML Impress File, png para impress_png_Export |
Draw | fodg para draw_ODG_FlatXML,html para draw_html_Export, odg para draw8, pdf para draw_pdf_Export, svg para draw_svg_Export, swf para draw_flash_Export, xhtml para XHTML Draw File, png para draw_png_Export |
Confiando no certificado HTTP local online de Java
Isto só é necessário se você tiver um certificado auto-assinado para sua instalação do Online.
- obter o certificado:
openssl s_client -connect localhost:9980 2>&1 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p'
- cole-o em um arquivo chamado certfile.txt
- importe-o para a loja de chaves Java (por omissão, a senha é changeit):
keytool -importcert -keystore $JAVA_HOME/jre/lib/security/cacerts -alias mycert -file certfile.txt
Dependendo do valor de $JAVA_HOME, você pode precisar executar keytool com privilégios root/administrador.
Conclusões
- Já está usando o JODConverter? – Considere mudar para usar seu backend mais seguro, Collabora Online.
- Usando o Collabora Online via JodConverter ou unoconv? – Considere trocar para a nossa API REST de conversão (amostra de código Java, amostra de código Python).
- Usando outra ferramenta? – Avalie se uma solução padrão Collabora Online atende às suas necessidades de desempenho e de conversão.