Sử dụng OpenOffice từ dòng lệnh để chuyển đổi HTML sang RTF


8

Tôi đang cố gắng xây dựng một tập lệnh bash trong Cygwin để chuyển đổi các tệp HTML sang RTF. Trong OS X, điều này không quan trọng lắm textutils, nhưng điều đó không tồn tại đối với Linux hoặc Cygwin thông thường. Thay vào đó, tôi đang cố gắng sử dụng OpenOffice từ dòng lệnh.

Tôi đã đọc ở nơi khác rằng OpenOffice có thể chạy không ngừng với một chương trình thường được cài đặt như /usr/bin/ooffice, nhưng trong Cygwin trong Windows, điều này rõ ràng không hoạt động. Trình cài đặt OpenOffice không xây dựng các liên kết Cygwin bản địa và thậm chí có thể không cài đặt Windows tương đương ooffice.

Làm cách nào tôi có thể sử dụng OpenOffice từ dòng lệnh trong Cygwin để chuyển đổi tệp HTML sang tệp RTF?

Câu trả lời:


4

Có một tập lệnh shell thực sự tiện dụng được gọi là unoconvxử lý chuyển đổi bất kỳ tệp nào từ và sang bất kỳ định dạng tệp nào mà OpenOffice / LibreOffice hỗ trợ. Bạn có thể đọc về nó trên trang web của nó và chắc chắn kiểm tra trang man . Nhiều bản phân phối có các gói cho nó mà bạn có thể cài đặt dễ dàng, bao gồm, tôi tin rằng, cygwin.

Khi bạn đã cài đặt xong, việc sử dụng trong trường hợp của bạn có nghĩa là chỉ định tệp html đầu vào và tệp rtf đầu ra như thế này:

unoconv file.html file.rtf

Tất cả đã được làm xong :)

Tất nhiên điều này có thể được viết kịch bản để xử lý nhiều tình huống tệp. Nếu bạn đang sử dụng zsh, bạn có thể chạy một cái gì đó như thế này để chuyển đổi toàn bộ thư mục tệp html:

for file in *html; do
    unoconv "$file" "${file/html/rtf}"
done

@Andrew Tôi hy vọng bạn thấy nó hữu ích, nhưng nó không hoàn toàn mới. Các kho git của dự án ngày trở lại đến năm 2007, và đó là một nhập khẩu từ một số hệ thống kiểm soát phiên bản trên rằng họ di cư từ.
Caleb

Hừm. Tôi đã bỏ lỡ điều đó khi tìm kiếm. Tôi giả định rằng nó là mới vì nó đã đề cập đến việc làm việc với cấu hình 0 trên OS X trên LO 3.6.x, mới xuất hiện gần đây. Bất kể, điều đó thật tuyệt vời :)
Andrew

6

Tôi muốn đề xuất JODConverter . Nó là một trình bao bọc java xung quanh OpenDoc Api để chuyển đổi. Cho phép bạn chuyển đổi các tập tin như thế này:

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

Nó cũng có sẵn trong python .

thay vì sử dụng lớp SDK DocumentSaver openoffice như thế này:

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

1
Tôi đã đi trước với một biến thể của điều này. Lúc đầu, tôi đã sử dụng Python và giữ OpenOffice chạy như một máy chủ nền, nhưng sau đó tôi đã tìm thấy Pyth ( pypi.python.org/pypi/pyth ) một trình chuyển đổi hoàn toàn dựa trên Python. Nó tối giản, nhưng nó hoạt động rất tốt.
Andrew

Bạn vẫn được yêu cầu cài đặt OOo hay các thư viện "trình bao bọc" bao gồm mọi thứ cần thiết? Tôi thấy không có đề cập rõ ràng. Cảm ơn.
humble_coder

1

Tôi có thể giúp với phần đầu tiên của câu hỏi của bạn. Đây là một ví dụ về việc chạy OpenOffice từ dòng lệnh Cygwin:

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

Điều đó sẽ cung cấp cho bạn một danh sách các đối số dòng lệnh. Tôi không thấy bất kỳ loại nào có thể chuyển đổi các loại tệp hoặc thậm chí là "Lưu dưới dạng", nhưng tôi đã không nghiên cứu API. Có lẽ bạn có thể điền vào phần đó. Tôi có OpenOffice.org 3.2 320m12 (Bản dựng: 9483).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.