And*_*rew 8 cygwin bash openoffice conversion
我正在尝试在 Cygwin 中构建一个 bash 脚本,它将 HTML 文件转换为 RTF。在 OS X 中,这对 来说是微不足道的textutils
,但对于常规 Linux 或 Cygwin 来说并不存在。相反,我试图从命令行使用 OpenOffice。
我读过其他地方的OpenOffice可以正常安装的程序headlessly运行/usr/bin/ooffice
,但在Cygwin的Windows下这显然是行不通的,OpenOffice的安装程序没有内置本地Cygwin的符号链接,并甚至可能没有安装Windows当量ooffice
。
如何从 Cygwin 的命令行使用 OpenOffice 将 HTML 文件转换为 RTF 文件?
我建议使用JODConverter。它是围绕 OpenDoc Api 进行转换的 Java 包装器。允许您像这样转换文件:
java -jar jodconverter-cli-2.2.0.jar foo.html foo.rtf
Run Code Online (Sandbox Code Playgroud)
它也可以在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
Run Code Online (Sandbox Code Playgroud)
有一个非常方便的 shell 脚本,unoconv
可以处理任何文件与 OpenOffice/LibreOffice 支持的任何文件格式之间的转换。您可以在其网站上阅读有关它的信息,并且一定要查看其手册页。许多发行版都有可以轻松安装的软件包,我相信包括 cygwin。
安装后,在您的情况下使用意味着指定一个输入 html 文件和一个输出 rtf 文件,如下所示:
unoconv file.html file.rtf
Run Code Online (Sandbox Code Playgroud)
全做完了 :)
当然,也可以编写脚本来处理多个文件的情况。如果您使用的是zsh
,您可以运行类似的命令来转换整个文件夹的 html 文件:
for file in *html; do
unoconv "$file" "${file/html/rtf}"
done
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
11721 次 |
最近记录: |