Gunakan OpenOffice dari baris perintah untuk mengonversi HTML ke RTF

8

Saya mencoba membuat skrip bash di Cygwin yang akan mengonversi file HTML ke RTF. Di OS X ini sepele textutils, tetapi itu tidak ada untuk Linux atau Cygwin biasa. Sebagai gantinya saya mencoba menggunakan OpenOffice dari baris perintah.

Saya telah membaca di tempat lain bahwa OpenOffice dapat berjalan tanpa kepala dengan program yang biasanya diinstal /usr/bin/ooffice, tetapi pada Cygwin di Windows ini jelas tidak berfungsi — installer OpenOffice tidak membangun symlink asli Cygwin dan bahkan mungkin tidak menginstal setara Windows ooffice.

Bagaimana saya bisa menggunakan OpenOffice dari baris perintah di Cygwin untuk mengonversi file HTML ke file RTF?

Andrew
sumber

Jawaban:

4

Ada skrip shell yang sangat berguna yang disebut unoconvyang menangani konversi semua file dari dan ke format file apa pun yang didukung OpenOffice / LibreOffice. Anda dapat membacanya di situsnya dan pastikan untuk memeriksa halaman manualnya . Banyak distro memiliki paket untuk itu yang dapat Anda instal dengan mudah, termasuk, saya percaya, cygwin.

Setelah Anda menginstalnya, penggunaan dalam kasus Anda berarti menentukan file input html dan file output rtf seperti ini:

unoconv file.html file.rtf

Semua selesai :)

Tentu saja ini dapat ditulis untuk menangani beberapa situasi file juga. Jika Anda menggunakan zsh, Anda bisa menjalankan sesuatu seperti ini untuk mengonversi seluruh folder file html:

for file in *html; do
    unoconv "$file" "${file/html/rtf}"
done
Caleb
sumber
@Andrew Saya harap Anda menemukan itu berguna, tapi itu bukan hal yang baru. The repositori git proyek tanggal kembali ke 2007, dan itu impor dari beberapa sistem kontrol versi lebih bahwa mereka bermigrasi dari.
Caleb
Hmm. Saya melewatkan itu ketika melihat. Saya berasumsi bahwa itu baru karena disebutkan bekerja dengan konfigurasi nol pada OS X pada LO 3.6.x, yang baru saja keluar baru-baru ini. Bagaimanapun juga, ini luar biasa :)
Andrew
6

Saya akan menyarankan JODConverter . Ini adalah pembungkus java di sekitar OpenDoc Api untuk konversi. Memungkinkan Anda mengonversi file seperti ini:

java -jar jodconverter-cli-2.2.0.jar foo.html foo.rtf

Ini juga tersedia dalam python .

alih-alih menggunakan kelas openoffice SDK DocumentSaver seperti ini:

java -classpath .;./bin;\
                $OO/program/classes/jurt.jar;\
                $OO/program/classes/ridl.jar;\
                $OO/program/classes/sandbox.jar;\
                $OO/program/classes/unoil.jar;\
                $OO/program/classes/juh.jar  \
    DocumentSaver uno:socket,host=localhost,port=8100;urp;StarOffice.ServiceManager  file:///C:/test/foo.html file:///C:/test/foo.rtf
DaveParillo
sumber
1
Saya melanjutkan dengan variasi ini. Awalnya saya menggunakan Python dan menjalankan OpenOffice sebagai server latar, tetapi kemudian saya menemukan Pyth ( pypi.python.org/pypi/pyth ) sebagai konverter murni berbasis Python. Ini minimalis, tetapi bekerja dengan baik.
Andrew
Apakah Anda masih harus menginstal OOo, atau apakah pustaka "wrapper" menyertakan semua yang diperlukan? Saya tidak melihat penyebutan eksplisit. Terima kasih.
humble_coder
1

Saya dapat membantu dengan bagian pertama dari pertanyaan Anda. Berikut ini contoh menjalankan OpenOffice dari baris perintah Cygwin:

/cygdrive/c/Program\ Files/OpenOffice.org\ 3/program/soffice.exe -help

Itu akan memberi Anda daftar argumen baris perintah. Saya tidak melihat ada yang akan mengkonversi tipe file atau bahkan "Save As", tapi saya tidak meneliti API. Mungkin Anda bisa mengisi bagian itu. Saya memiliki OpenOffice.org 3.2 320m12 (Build: 9483).

garyjohn
sumber