Mengonversi docx/odt ke PDF menggunakan JavaScript

Saya memiliki aplikasi web simpul yang perlu mengonversi file docx menjadi pdf (hanya menggunakan sumber daya sisi klien dan tanpa plugin). Saya telah menemukan solusi yang mungkin dengan mengubah docx saya menjadi HTML menggunakan docxjs dan kemudian HTML ke PDF menggunakan jspdf (docx->HTML->PDF). Solusi ini dapat menyelesaikannya tetapi saya mengalami beberapa masalah terutama dengan rendering. Saya tahu bahwa docxjs tidak menyimpan rendering yang sama dalam HTML dengan file docx jadi ini masalah...

Jadi pertanyaan saya adalah apakah Anda mengetahui modul/solusi gratis yang dapat langsung melakukan pekerjaan itu tanpa melalui HTML (Saya juga terbuka untuk odt sebagai sumber)? Jika tidak, apa saran Anda agar saya lakukan?

Terima kasih


person ncohen    schedule 11.05.2014    source sumber
comment
ada solusi untuk ini?   -  person Sunil Lama    schedule 11.04.2017
comment
@SunilLama Saya tidak menemukan...   -  person ncohen    schedule 13.04.2017
comment
@ncohen Halo teman-teman, baru-baru ini mengalami masalah domain ini dan ingin berbagi temuan saya. Pertama, periksa zamzar.com dan convertio.co keduanya merupakan layanan konversi API pihak ketiga yang tangguh. Saya melakukan sedikit rekayasa balik untuk mengetahui bagaimana mereka dapat merender DOCX ke HTML dan inilah yang saya temukan. Mereka pertama-tama beralih dari DOCX ke PDF dengan libreoffice atau unoconv seperti yang didokumentasikan zarkone di bawah, tetapi kemudian beralih dari PDF ke HTML dengan saus rahasia yang disebut github.com/coolwanglu/pdf2htmlEX, yang merupakan salah satu alat konversi sumber terbuka yang unik!   -  person asdfqwer    schedule 18.06.2018


Jawaban (2)


Seperti yang sudah Anda ketahui, tidak ada lib yang siap digunakan dan terbuka untuk ini.. Anda tidak bisa mendapatkan hasil yang baik dengan varian yang tersedia. Saran saya adalah:

  1. Gunakan API pihak ketiga. Suka https://market.mashape.com/convertapi/word2pdf-1#!documentation
  2. Buat layanan Anda sendiri untuk tujuan ini. Jika Anda memiliki kemampuan seperti itu, saya sarankan untuk membuat server kecil di node.js (saya yakin Anda tahu cara melakukan ini). Anda dapat menggunakan Libreoffice sebagai konverter yang bagus dengan kualitas render yang bagus seperti ini:

    libreoffice -headless -invisible -convert-to pdf {$file_name} -outdir /www-disk/

    Jangan lupa bahwa ini biasanya memakan banyak waktu, jangan menghalangi alur permintaan-jawaban: gunakan proses terpisah untuk setiap operasi konversi.

    Dan hal terakhir. Libreoffice tidak terlalu ringan tetapi memiliki kualitas yang baik. Anda juga dapat menemukan alat unoconv yang terkenal.

Mulai Januari 2019, ada docx-wasm, yang berfungsi di node dan melakukan konversi secara lokal di mana node dipasang. Berpemilik tetapi freemium.

person zarkone    schedule 14.05.2014
comment
Terima kasih, tetapi saya masih mencari sesuatu yang berfungsi pada klien. - person ncohen; 14.05.2014
comment
Apakah maksud Anda Anda tidak ingin konversi sisi server? - person coder hacker; 21.05.2014
comment
Benar, saya ingin aplikasi saya sepenuhnya otonom. - person ncohen; 21.05.2014
comment
Tidak bisakah kamu menggunakan api? Maksud Anda sepenuhnya otonom - tanpa koneksi internet? Ada banyak penyedia yang dapat mengonversi x -›y dengan panggilan api. Google saja - person Lukas Liesis; 11.05.2018
comment
Diedit untuk menambahkan tautan ke docx-wasm (pengungkapan: Saya tertarik) - person JasonPlutext; 23.01.2019
comment
@JasonPlutext apa status NativeDocuments itu? Adakah kemungkinan Anda bersedia menjadikan proyek itu sebagai sumber terbuka? (juga, jangan ragu untuk mengabaikan pesan saya yang lain di github/twitter) - person zelusp; 12.02.2020
comment
Saya menjawab pertanyaan kedua o @zelusp - sepertinya pertanyaan yang sempurna dan satu-satunya di luar sana - person jean d'arme; 19.09.2020

Tampaknya bahkan setelah tiga tahun, ncohen belum menemukan jawabannya. Juga tidak jelas apakah solusi tersebut harus berupa solusi gratis (seperti dalam dolar).

Persyaratan aslinya adalah:

hanya menggunakan sumber daya sisi klien dan tanpa plugin

Apakah maksud Anda Anda tidak ingin konversi sisi server? Benar, saya ingin aplikasi saya sepenuhnya otonom.

Karena semua jawaban/komentar lain hanya menawarkan solusi komponen sisi server, yang penulis nyatakan dengan jelas bukan yang mereka inginkan, berikut adalah jawaban yang diusulkan.

Perusahaan tempat saya bekerja telah memiliki solusi ini selama beberapa tahun, yang dapat mengonversi file DOCX (belum ada yang lain) ke PDF sepenuhnya di browser, tanpa memerlukan komponen sisi server. Saat ini menggunakan asm.js/PNaCl/WASM tergantung pada browser yang digunakan.

https://www.pdftron.com/samples/web/samples/viewing/viewing/

Buka file office menggunakan demo di atas, dan Anda tidak akan melihat komunikasi server. Semuanya dilakukan di sisi klien. Demo ini juga berfungsi di browser seluler.

person Ryan    schedule 07.07.2019
comment
apakah ada kode sumber yang dapat saya periksa atau pelajari? - person Mirza Andriamanamisoa; 28.06.2020
comment
@MirzaAndriamanamisoa Ini adalah solusi komersial berbayar sumber tertutup. Demo online ada di sini: pdftron.com/webviewer/demo - person Ryan; 29.06.2020