将Word(.docx)转换为DocBook
我现在的任务是找到一种方法,把大量的 .docx 文件转换成 docbook 5 格式。目前,我们是用 OpenOffice 打开文件,然后另存为 docbook,这个过程非常耗时。不过我相信一定有更好的方法。这些文件之后还会根据我们的自定义 relax NG 模式进行进一步处理,所以这个转换不需要完美无缺。我已经查了一些资料,并会继续寻找线索,但到目前为止还没有找到什么有用的东西。
在查看了 将 doc/docx 转换为语义 HTML 的内容后,他们推荐了 upCast,但这似乎不太符合我的需求。
我希望找到一些可以在命令行中使用的免费工具。最终,我想批量处理我们的文件。我已经加了 linux、python 和 java 的标签,因为这些是我最熟悉的环境,但如果有合适的解决方案,我也愿意尝试其他的。我想在开始之前先做一些研究,而不是重新发明轮子。
3 个回答
你可以把OpenOffice设置成服务器模式,这样就可以直接把文档传给它,而不用一个一个手动打开。
一种方法是查看这个链接:http://code.google.com/p/bungeni-editor/wiki/RunningTheJODConverterServer
虽然这样做可能会让人觉得像考古学家一样,但答案里应该提到一下 Pandoc。这个工具不需要依赖开放办公软件。
pandoc -f docx -t docbook -o newdocbook.dbk --standalone original.docx
有几种方法可以编写脚本来实现这个功能,既可以使用外部脚本,也可以在OpenOffice内部编写脚本。下面是一些示例链接:
- http://juretta.com/log/2006/08/10/convert_microsoft_word_to_docbook_xml_using_ruby_and_openoffice/
- http://www.oooninja.com/2008/02/batch-command-line-file-conversion-with.html
- http://www.xml.com/pub/a/2006/01/11/from-microsoft-to-openoffice.html
- http://mail.python.org/pipermail/python-announce-list/2006-May/004951.html
- http://dag.wieers.com/home-made/unoconv/
上面的一些链接虽然没有使用Java或Python,但其中的原理仍然适用,而且这些脚本通常都比较短,容易移植(第一个示例是用Ruby写的,我个人很喜欢这个,因为它简单易懂)。