JODConverter (Java OpenDocument Converter); belge dönüşümlerini otomatikleştiren, yaygın olarak kullanılan bir araçtır. unoconv, benzer amaca sahip bir Python aracıdır. Neden JODConverter’ın Collabora Online arka ucuna (backend) ya da doğrudan Collabora Online’a geçmeniz gerektiği hakkındaki ayrıntıları bu sayfada bulabilirsiniz.
Bu araçların desteklenen biçimleri arasında OpenDocument, PDF, HTML, Microsoft Office biçimleri (DOC/DOCX/RTF, XLS/XLSX, PPT/PPTX) ve çok daha fazlası bulunur. Bunlar bir Java/Python kütüphanesi, komut satırı aracı ya da web uygulaması olarak kullanılabilirler. Daha yeni sürümlerde, doğrudan LibreOffice yerine Collabora Online kullanan bir JODConverter arka ucu bulunur.
Belge dönüştürme için Collabora Online kullanmanın faydaları nelerdir?
- Aç-dönüştür-kapat yaklaşımına göre daha yüksek performans
- REST API, LibreOffice’i sunucu kipinde başlatıp uzaktan UNO yoluyla iletişimden daha güvenilirdir
- Daha güvenlidir çünkü dönüştürme işlemi yalıtılmış bir ortamda gerçekleşir ve bu katmanlı yaklaşım da altyapınızı (dış katmanlardan iç katmanlara doğru) korur:
- Sanal Makine / Docker Konteyneri içinde çalıştırmak daha kolaydır
- Her belge için ayrı chroot’lar ile belge verileri yalıtılır
- Seccomp-bpf: bu chroot’lar içinde (neredeyse) hiçbir sistem çağrısına izin verilmez
- chroot içinde aşırı seyrek dosya sistemi : shell vb. yok
FaydaJODConverterunoconvCollabora Online
Birçok dosya biçimi | Evet | Evet | Evet |
Tek başlangıç maliyeti | Hayır | Hayır | Evet |
Standart REST API | Hayır | Hayır | Evet |
VM / docker ile kolay yalıtım | Hayır | Hayır | Evet |
Belge yalıtımı | Hayır | Hayır | Evet |
Sistem çağrısı (syscall) süzgeci | Hayır | Hayır | Evet |
Seyrek dosya sistemi | Hayır | Hayır | Evet |
Bu, Collabora Online ile belgeleri dönüştürürken hem daha yüksek performans hem de daha iyi güvenlik elde edeceğiniz anlamına gelir.
Performans
İlk grafik, bir saniye içinde dönüştürülen belge sayısı ölçülüp çok kanallı çalışma dikkate alındığında Collabora Online’ın, JODConverter’ın LibreOffice arka ucu ve unoconv’a göre nasıl bir performans sergilediğini gösterir:
CODE’u kurup denemek ister misiniz?Hemen indirin!
Collabora Online’ın yalnızca üstün başlangıç performansına sahip olmakla kalmayıp aynı zamanda daha çok iş kanalı (thread) kullanıldıkça daha iyi ölçeklendiği de grafikte görülmektedir. (Collabora Online için curl çağrıları, JODConverter’ın java komut satırı çağrıları ve unoconv’un python komut satırı çağrıları ile karşılaştırılmıştır.)
Derleme
Eğer JODConverter’ı Collabora Online arka ucu ile denemek isterseniz:
git clone https://github.com/sbraconnier/jodconverter cd jodconverter sh gradlew build -x integTest distZip cd build/distdibutions unzip jodconverter-cli-*.zip cd jodconverter-cli-*/
Çalıştırma
- Örnek:
bin/jodconverter-cli -c https://localhost:9980/ -f pdf README.txt
- Girdi dosyası biçimi otomatik olarak saptanır, çıktı biçimi -f ile belirtilir.
- URL, Collabora Online sunucunuzun adresidir ve kurulum kılavuzundaki https:// değeridir.
Doğrudan Collabora Online REST API kullanmak
- Eğer halen JODConverter kullanmıyorsanız, doğrudan REST API kullanabilirsiniz, örneğin:
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
- Alternatif olarak, biçimi belirtmek için HTML formları da kullanabilirsiniz, örneğin:
curl -F "data=@test.txt" -F "format=pdf" https://localhost:9980/lool/convert-to > out.pdf
Desteklenen biçimler
Desteklenen girdi biçimleri:
Çizim şablonu belgeleri
Belgeler | Girdi biçimleri |
---|---|
Writer belgeleri | sxw (görüntüleme), odt ve fodt (düzenleme) |
Calc belgeleri | sxc (görüntüleme), ods ve fods (düzenleme) |
Impress belgeleri | sxi (görüntüleme), odp ve fodp (düzenleme) |
Draw belgeleri | sxd (görüntüleme), odg ve fodg (düzenleme) |
Chart belgeleri | odc (düzenleme) |
Metin türünde ana belgeler | sxg (görüntüleme), odm (düzenleme) |
Metin türünde şablon belgeleri | stw (görüntüleme), ott (düzenleme) |
Writer ana belge şablonları | otm (düzenleme) |
Hesap tablosu şablon belgeleri | stc (görüntüleme), ots (düzenleme) |
Sunum şablonu belgeleri | sti (görüntüleme), otp (düzenleme) |
std (görüntüleme), otg (düzenleme) | |
Base belgeleri | odb (düzenleme) |
Eklentiler | oxt (düzenleme) |
MS Word | doc ve dot (düzenleme) |
MS Excel | xls (düzenleme) |
MS PowerPoint | ppt (düzenleme) |
OOXML kelime işlem | docx ve docm (düzenleme), dotx ve dotm (görüntüleme) |
OOXML hesap tablosu | xltx ve xltm (görüntüleme), xlsx, xlsb ve xlsm (düzenleme) |
OOXML sunumu | pptx, pptm, potx, potm (düzenleme) |
Diğer | wpd, pdb, hwp, wps, wri, wk1, cgm, dxf, emf, wmf, cdr, vsd, pub, vss, lrf, gnumeric, mw, numbers, p65, pdf, jpg, jpeg, gif, png, vb. (görüntüleme) |
Diğer | dif, slk, csv, dbf, oth, rtf, txt, vb. (düzenleme) |
Writer/Calc/Impress için desteklenen çıktı biçimleri:
BelgelerÇıktı biçimleri
WriterMS Word 97 için doc, MS Word 2007 XML VBA için docm, MS Word 2007 XML için docx, OpenDocument Text Flat XML için fodt, HTML (StarWriter) için html, writer8 için odt, writer8_template için ott, writer_pdf_Export için pdf, Rich Text Format için rtf, Text için txt, XHTML Writer File için xhtml, writer_png_Export için png
CalcText – txt – csv (StarCalc) için csv, OpenDocument Spreadsheet Flat XML için fods, HTML (StarCalc) için html, calc8 için ods, calc8_template için ots, calc_pdf_Export için pdf, XHTML Calc File için xhtml, MS Excel 97 için xls, Calc MS Excel 2007 VBA XML için xlsm, Calc MS Excel 2007 XML için xlsx, calc_png_Export için png
ImpressOpenDocument Presentation Flat XML için fodp, impress_html_Export için html, impress8_draw için odg, impress8 için odp, impress8_template için otp, impress_pdf_Export için pdf, Impress MS PowerPoint 2007 XML Template için potm, MS PowerPoint 97 Vorlage için pot, Impress MS PowerPoint 2007 XML VBA için pptm, Impress MS PowerPoint 2007 XML için pptx, MS PowerPoint 97 Autoplay için pps, MS PowerPoint 97 için ppt, impress_svg_Export için svg, impress_flash_Export için swf, XHTML Impress File için xhtml, impress_png_Export için png
Drawdraw_ODG_FlatXML için fodg, draw_html_Export için html, draw8 için odg, draw_pdf_Export için pdf, draw_svg_Export için svg, draw_flash_Export için swf, XHTML Draw File için xhtml, draw_png_Export için png
Java’da yerel Online HTTP sertifikasına güvenmek
Bu adım, yalnızca Online kurulumunuz için kendinden imzalı bir sertifika kullanmanız durumunda gerekir.
- sertifikayı alın:
openssl s_client -connect localhost:9980 2>&1 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p'
- certfile.txt adlı bir dosyaya yapıştırıp kaydedin
- Java anahtar deposuna ekleyin (öntanımlı parola changeit‘tir):
keytool -importcert -keystore $JAVA_HOME/jre/lib/security/cacerts -alias mycert -file certfile.txt
$JAVA_HOME değerine bağlı olarak, keytool aracını root/Yönetici haklarıyla çalıştırmanız gerekebilir.
Sonuç
- Zaten JODConverter kullanıyor musunuz? – daha güvenli olan Collabora Online arka ucunu kullanmaya geçmeyi değerlendirin.
- JodConverter ya da unoconv yoluyla Collabora Online mı kullanıyorsunuz? – basit REST dönüştürme API’mize geçiş yapmayı değerlendirin (Java örnek kodu, Python örnek kodu).
- Başka bir araç mı kullanıyorsunuz? – standart bir Collabora Online çözümünün, performans ve dönüştürme ihtiyaçlarınızı karşılayıp karşılamadığını değerlendirin.