ใช้ OpenOffice จากบรรทัดคำสั่งเพื่อแปลง HTML เป็น RTF


8

ฉันกำลังพยายามสร้างสคริปต์ทุบตีใน Cygwin ที่จะแปลงไฟล์ HTML เป็น RTF ใน OS X นี่เป็นเรื่องเล็กน้อยtextutilsแต่ไม่มีใน Linux หรือ Cygwin ปกติ ฉันพยายามใช้ OpenOffice จากบรรทัดคำสั่งแทน

ผมเคยอ่านที่อื่น ๆ ที่สามารถเรียกใช้ OpenOffice headlessly กับโปรแกรมที่ติดตั้งตามปกติ/usr/bin/oofficeแต่ใน Cygwin ภายใต้ Windows นี้เห็นได้ชัดไม่ทำงานติดตั้ง OpenOffice ไม่ได้สร้าง symlinks Cygwin oofficeพื้นเมืองและอาจไม่ได้ติดตั้งเทียบเท่าของ

ฉันจะใช้ OpenOffice จากบรรทัดคำสั่งใน Cygwin เพื่อแปลงไฟล์ HTML เป็นไฟล์ RTF ได้อย่างไร

คำตอบ:


4

มีเชลล์สคริปต์ที่มีประโยชน์จริงๆที่เรียกunoconvว่าจัดการการแปลงไฟล์ใด ๆ จากและเป็นรูปแบบไฟล์ใด ๆ ที่ OpenOffice / LibreOffice สนับสนุน คุณสามารถอ่านข้อมูลเกี่ยวกับเรื่องนี้ในเว็บไซต์ของตนและให้แน่ใจว่าได้ตรวจสอบหน้าคน Distros หลายแห่งมีแพ็คเกจให้คุณติดตั้งได้ง่ายรวมถึง Cygwin

เมื่อคุณติดตั้งแล้วการใช้งานในกรณีของคุณจะหมายถึงการระบุไฟล์ html อินพุตและไฟล์เอาต์พุต rtf ดังนี้:

unoconv file.html file.rtf

ทุกอย่างเสร็จเรียบร้อย :)

หลักสูตรนี้สามารถใช้สคริปต์เพื่อจัดการกับสถานการณ์ไฟล์หลายรายการได้เช่นกัน หากคุณใช้zshงานอยู่คุณสามารถเรียกใช้บางอย่างเช่นนี้เพื่อแปลงทั้งไฟล์ html:

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

@ แอนดรูว์ฉันหวังว่าคุณจะพบว่ามีประโยชน์ แต่ก็ไม่ใช่เรื่องใหม่ พื้นที่เก็บข้อมูลของโครงการคอมไพล์วันที่กลับไปปี 2007 และที่นำเข้าจากกว่าระบบการควบคุมบางรุ่นที่พวกเขาอพยพมาจาก
คาเลบ

อืมมม ฉันคิดถึงสิ่งนั้นเมื่อมอง ฉันคิดว่ามันใหม่เนื่องจากมันกล่าวถึงการทำงานกับการกำหนดค่าศูนย์บน OS X บน LO 3.6.x ซึ่งเพิ่งจะเปิดตัวเมื่อเร็ว ๆ นี้ ไม่ว่ามันจะยอดเยี่ยม :)
Andrew

6

ฉันจะแนะนำJODConverter เป็น wrapper java รอบ OpenDoc Api สำหรับการแปลง ให้คุณแปลงไฟล์ดังนี้:

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

นอกจากนี้ยังมีอยู่ในหลาม

แทนการใช้คลาสOpenOffice SDK DocumentSaverเช่นนี้

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
ฉันไปข้างหน้าด้วยความหลากหลายของสิ่งนี้ ตอนแรกฉันไปกับ Python และทำให้ OpenOffice ทำงานเป็นเซิร์ฟเวอร์พื้นหลัง แต่หลังจากนั้นฉันก็พบ Pyth ( pypi.python.org/pypi/pyth ) เป็นตัวแปลงจาก Python อย่างแท้จริง มันเรียบง่าย แต่ก็ใช้งานได้ดี
แอนดรู

คุณยังต้องติดตั้ง OOo จริง ๆ หรือไม่หรือว่า "wrapper" library จะรวมทุกอย่างที่จำเป็น? ฉันไม่เห็นพูดชัดเจน ขอบคุณ
humble_coder

1

ฉันสามารถช่วยในส่วนแรกของคำถามของคุณ นี่คือตัวอย่างของการเรียกใช้ OpenOffice จากบรรทัดคำสั่ง Cygwin:

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

ที่จะให้รายการของอาร์กิวเมนต์บรรทัดคำสั่ง ฉันไม่เห็นว่าจะแปลงประเภทไฟล์หรือแม้แต่ "บันทึกเป็น" แต่ฉันไม่ได้ค้นคว้า API บางทีคุณสามารถกรอกส่วนนั้น ฉันมี OpenOffice.org 3.2 320m12 (รุ่น: 9483)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.