从命令行使用OpenOffice将HTML转换为RTF


8

我正在尝试在Cygwin中构建bash脚本,该脚本会将HTML文件转换为RTF。在OS X中,这是微不足道的textutils,但是对于常规Linux或Cygwin而言并不存在。相反,我试图从命令行使用OpenOffice。

我在其他地方读过,OpenOffice可以正常安装的程序可以无头运行/usr/bin/ooffice,但是在Windows下的Cygwin中,这显然行不通-OpenOffice安装程序未构建本机Cygwin符号链接,甚至可能没有安装Windows的等效链接ooffice

如何在Cygwin的命令行中使用OpenOffice将HTML文件转换为RTF文件?

Answers:


4

有一个非常方便的shell脚本unoconv,可以处理OpenOffice / LibreOffice支持的任何文件与文件之间的转换。您可以在其网站上阅读有关它的信息,并确保查看手册页。许多发行版都具有易于安装的软件包,包括cygwin。

安装完毕后,按您的情况使用将意味着指定输入html文件和输出rtf文件,如下所示:

unoconv file.html file.rtf

全做完了 :)

当然,也可以编写脚本来处理多种文件情况。如果您使用zsh,则可以运行以下内容来转换整个html文件文件夹:

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

@Andrew我希望您觉得它有用,但是它并不完全是新的。该项目的git存储库可追溯到2007年,这是他们从其迁移过来的一些版本控制系统中导入的。
Caleb 2012年

嗯 我在看的时候错过了。我认为它是新的,因为它提到了最近在LO 3.6.x上在OS X上使用零配置的情况。无论如何,它都很棒:)
Andrew

6

我建议使用JODConverter。它是围绕OpenDoc Api进行转换的Java包装器。允许您像这样转换文件:

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

它也可以在python中使用

而不是像这样使用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,还是“包装器”库包含所需的一切?我没有明确提及。谢谢。
humble_coder 2011年

1

我可以为您的问题的第一部分提供帮助。这是从Cygwin命令行运行OpenOffice的示例:

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

这将为您提供命令行参数列表。我没有看到任何可以转换文件类型甚至“另存为”的文件,但是我没有研究API。也许您可以填写该部分。我有OpenOffice.org 3.2 320m12(Build:9483)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.