2011-04-08 79 views
3

有谁知道能够从Microsoft Office Open XML文件(如Word DOCX或Excel XLSX)生成XSL-FO的库吗?是否有能够从Office XML文档(如DOCX,XLSX)生成XSL-FO的库?

鉴于这些Office文件基本上都是ZIP文件中的XML文件,我认为通过应用适当的XSLT转换来生成XSL-FO非常简单 - 尽管编写XSLT需要一些时间。但是,如果我怀疑这是一个直截了当的话,那么也许有人编写了一个库来实现它,或者发布了XSLT转换。

This Microsoft MSDN library article包含一个使用Word 2003 WordprocessingML文件创建XSL-FO的示例,但对于较新的Open XML格式我没有看到任何内容。

有没有人有建议? Java库会更好,但任何事情都会被考虑。

+0

你有没有找到一种方法让XSL-FO脱离docx4j? – Marcin 2012-01-24 14:24:33

回答

2

docx4j对此有支持,对于docx;自v3.3.0它在一个单独的项目https://github.com/plutext/docx4j-export-FO

它使用XSLT创建XSL-FO。 XSLT使用Java扩展函数调用docx4j方法来完成大部分工作,使XSLT本身相对简单。

docx4j使用FOP将XSL FO转换为PDF。

docx4j支持xlsx,但没有内置从XLSX导出到XSL FO。

+0

我知道关于docx4j,但我不知道它能够生成XSL-FO - 所以它很适合我,尤其是考虑到它在Apache许可下可用! – gutch 2011-06-24 00:41:45

2

RenderX拥有一套publicly available stylesheets that convert WordML into XSL-FO

http://www.renderx.com/tools/word2fo.html

通过 RenderX的开发团队和 微软用于一般用途制备这些样式表。它们是 ,用于将 中的文档转换为W3C的 XSL FO(XSLFO)词汇表中的文档的Microsoft Word处理XML XML 词汇表。这些通用样式表产生XSL FO (XSLFO),适用于RenderX XEP 引擎。

+0

谢谢。这些RenderX样式表看起来很有前途,但考虑到docx4j库的简单且零成本的许可,很难在docx4j上选择RenderX。 – gutch 2011-06-24 00:44:47