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

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

我正在尝试在 Cygwin 中构建一个 bash 脚本,将 HTML 文件转换为 RTF。在 OS X 中,这很容易textutils,但在常规 Linux 或 Cygwin 中则不存在。相反,我尝试从命令行使用 OpenOffice。

我在其他地方读到过,OpenOffice 可以与通常安装为 的程序一起无头运行/usr/bin/ooffice,但在 Windows 下的 Cygwin 中这显然不起作用 - OpenOffice 安装程序不会构建本机 Cygwin 符号链接,甚至可能不会安装 Windows 等效的ooffice

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

答案1

有一个非常方便的 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

答案2

我建议JOD转换器。它是用于转换的 OpenDoc Api 的 Java 包装器。允许您转换如下文件:

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

它还有Python

而不是使用开源软件开发工具包 文件保存器像这样的类:

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

答案3

我可以帮你解答问题的第一部分。以下是从 Cygwin 命令行运行 OpenOffice 的示例:

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

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

相关内容