我正在尝试在 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)。