DocBook转换为Word文档?

10

我需要协助将DocBook文件转换为Microsoft Word文件。

我是否需要一个XSL文件来进行转换?


这是一个使用XQuery将DocBook转换为MS-Word的写作指南。你可以在http://en.wikibooks.org/wiki/XQuery/DocBook_to_Microsoft_Word上找到详细的教程。 - Dan McCreary
4个回答

6
是的,您需要一个XSL文件。您可以从免费的DocBook XML发行版获取DocBook的XSL文件。然后,您可以运行一个免费的XSLT转换器,如Saxon。如果您从命令行运行Saxon,则需要给出您的DocBook文件的名称和其中一个样式表的名称,它将根据样式表中的规则来转换您的文件。
要转换为Word,您需要选择正确的样式表。
从《DocBook XSL: The Complete Guide》中,这里有三种可能性
- 将其转换为XSL-FO,然后使用XMLmind导出到Word。有关更多信息,请参见XMLmind网站。 - 使用一组有限的标记,然后使用DocBook XML的一个包含的样式表输出到WordML。 - 尝试使用Jfor输出到RTF,尽管Jfor似乎不再得到维护。
我还有自己的建议:
- 如上所述,使用DocBook XML的一个包含的样式表将其发布到XSL-FO,然后运行Apache FOP将其从XSL-FO转换为RTF。您将失去结构信息,但会保留一定数量的格式。

1
"我们自己的"和JFor之间没有区别,因为JFor代码已经捐赠给fop...这就解释了为什么jfor不再维护。 - malat
@martin-jakubik,您在回答中链接的Steve Ball网站因为自签名服务器证书(MOZILLA_PKIX_ERROR_SELF_SIGNED_CERT)被Firefox报告为安全风险。最好删除该链接。 - lbo

1

我知道这是一个11年前的问题。但现在,2022年您可以使用Pandoc将DocBook转换为MS Word(docx)。

pandoc --from docbook --to docx --output filename.docx filename.docbook

Pandoc如何处理<xi:include> - albert
@alber 抱歉我没有立即回答,但我不太了解docbook。我猜它不能,因为我认为pandoc只解析目标文件的内容(例如filename.docbook)。 - zazke

1

我最近为我们的用户实现了同样的功能。 他们使用 Oxygen XML 编辑器,可以通过 XSL 轻松进行转换。 我本来想做 OOXML,但最终选择了 WordML。 作为起点,我使用了 roundtrip XSL,但由于现有错误或缺少的功能,我不得不重写许多模板。 此外,我还进行了其他自定义以服务于某些目的或仅适用于我们的 XML 文件。

我不介意向该项目做出贡献,但真的不知道如何开始。


3
嗨,Mike,你能否把XSLT文件发布到Github上?问候,Jan。 - Jan

0

我正在使用XQuery和typeswitch库将DocBook转换为各种格式。XQuery使用索引,因此我可以快速地转换许多文档。


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