如何使用Sphinx生成Microsoft Word文档

28

Sphinx支持几种输出格式:

  • 多个HTML文件(使用htmldirhtml
  • Latex,用于创建.pdf.ps文件
  • 文本

我该如何获取Microsoft Word文件的输出?

通过另一种文档生成器,我成功地生成了一个单独的HTML输出文件,然后使用Word应用程序将其转换为Microsoft Word格式。

不幸的是,我不知道如何生成Word或HTML单页格式。


4
运行 make singlehtml 以生成单个 HTML 文件。 - andho
8个回答

15

我使用的解决方案是像评论中提到的andho一样使用singlehtml构建器,然后使用pandoc将HTML转换为docx。

以下示例假定生成的HTML位于_build/singlehtml/index.html。

make singlehtml
cd _build/singlehtml/
pandoc -o index.docx index.html

在我的情况下,Pandoc 删除了一些样式,特别是代码块。因此,我在浏览器中打开单个文档,并 grep 整个文档(ctrl-a),然后将其复制粘贴到 Word 中。这样可以保留我所有的样式。 - Harry Yoo
谢谢!这个答案值得获得绿色徽章。 - Aziz Alto
最快的方式。 - Can H. Tartanoglu

8

我没有测试过它们,但我在这里添加它们,因为它们显然是为解决提问者所遇到的问题而产生的,比当前提出的替代方案更加直接和简明,并且按照这里的链接和思路可能不会引导你找到它们... - David Fraser
1
请反馈您是否成功使用了这个程序 - 并且哪一个是最好的! - David Fraser
我尝试使用第二个,但无法安装其要求。 - ffleandro

4

要将重构文本文件转换为MSdoc,我使用rst2odtunoconv。请看下面的脚本:

#!/bin/sh
rst2odt $1 $1.odt
unoconv -f doc $1.odt
rm $1.odt

使用rst2odt,您可以使用自己的样式表:unoconv带有OpenOffice,并且还允许在转换过程中应用Open Office样式(模板)。只需编辑一个转换后的文档,更改样式,添加页眉和页脚,将其保存为ODF文本文档模板(OTT),并将其作为转换的一部分使用,例如:
unoconv -f doc -t template.ott $1.odt

以后可将该模板用于各种转换。


1
但是这并不能处理完整的Sphinx功能,只能处理RsT功能,对吗? - ankostis
与Sphinx无关。 - Can H. Tartanoglu

1
这个答案并不是一个命令行解决方案,也不是显然最好的方法,但它对我来说简单有效,节省了时间。生成html文件1后,您可以使用浏览器打开生成的html文件,复制整个页面(Crtl + a和Ctrl+ c),然后运行Microsoft Office(或者如果您没有Microsoft Windows,则使用在线版本)并将其粘贴(Ctrl+v)。

1

我知道这是一个老问题,但我发现LibreOffice支持以下转换方式(假设soffice.exe在您的路径中):

soffice.exe --invisible --convert-to doc myInputFile.odt

我读到的一些资料说要使用--headless选项而不是--invisible选项。在Windows上似乎两者都可以工作。

您可以从rst2odt.py脚本开始,然后执行上述操作将其转换为MS Word文档。

这里有一个链接,其中包含LibreOffice的其他启动选项: http://help.libreoffice.org/Common/Starting_the_Software_With_Parameters

这里有一个链接,其中包含OpenOffice支持的文件类型列表,我相信LibreOffice也应该支持: http://wiki.services.openoffice.org/wiki/Framework/Article/Filter/FilterList_OOo_3_0


与Sphinx无关。 - Wtower

0

OP明确要求从Sphinx到docx的路径,而不是从.rst文件转换。Sphinx项目支持除ReStructured Text以外的其他格式。 - Can H. Tartanoglu

0

这是一个使用Calibre(https://calibre-ebook.com)的解决方法,其中包含一个强大的转换器。这个方法效果不错,大部分格式都得以保留:

  • 在Sphinx中生成epub输出 make epub
  • 将epub输出导入Calibre,然后使用内置电子书转换器将epub转换为docx。

虽然答案已经对原问题来说有些晚了,但遇到相同问题的人可能会发现这个方法很有用。


-5

我不知道Sphinx是什么,但你可以创建一个rtf文件或html文件或类似的东西。

请参见以下博客文章获取更多信息/方法:OFFICE AUTOMATION

从那里开始:如何使用ASP生成富文本格式(RTF)文档流到Microsoft Word

本文介绍了如何使用ASP脚本生成富文本格式(RTF)文件,然后将这些文件流式传输到Microsoft Word。该技术提供了一种替代Microsoft Word服务器端自动化用于运行时文档生成的方法。

你不使用ASP脚本(谁会呢:-)),但可以参考这个想法。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接