用于从Java生成word文档的xsl样式表

时间:2014-08-07 16:18:24

标签: java xml xslt ms-word

我想知道是否有任何Java API允许生成类似Apache FOP的Word文档 使用FOP,可以指定样式表,该样式表定义打印数据(存储在xml文件中)的页面布局。
FOP库中的Transformer对象负责该操作。

word文档是否有任何等效的API?

3 个答案:

答案 0 :(得分:1)

使用FOP,您可以尝试Word接受的XML to RTF

From their webpage, XMLmind XSL-FO Converter显然会产生:

  • RTF(可以在Word 2000 +中打开),
  • WordprocessingML(可以在Word 2003+中打开),
  • Office Open XML(.docx,可以在Word 2007 +中打开),

将FO放在一边,这里有两种不同的方法:

首先是编写一个XSLT将XML转换为Flat OPC XML。 Flat OPC XML中的大多数部分都将由XSLT简单地复制到那里。 (使用“另存为XML”在Word中生成该模板内容)。您将主要关注填充document.xml部分。 Word可以打开Flat OPC XML文件,或者您可以使用docx4j(我正在处理的项目)将Flat OPC XML转换为docx。

第二种方法是使用docx4j Flying Saucer fork将XML + CSS转换为docx内容。请参阅code samples。您可能需要稍微自定义一下;喂它的一种方法是this file。这实际上应该很好;那里有用于将类属性映射到Word样式的东西,所以如果你可以用类属性装饰你的XML,你可以获得更好的结果。

答案 1 :(得分:0)

我将假设您的输入是XML文档,或者至少是CSV文件。

1)创建一个XSLT样式表,将输入转换为Word文档格式。结果将是我们将调用content.xml的文件。您可以将样式表应用于Java的输入。

2)创建一个MS Word shell并将content.xml放入shell中。 Apache POI内有工具可以执行此操作。

我可能太过字面意思了。您也可以使用Apache POI API生成文档。此外,如果您的MS Word文档没有表格,您可以使用Apache FOP生成RTF文档,然后可以轻松将其转换为.docx文件。

答案 2 :(得分:0)

Apache POI提供了用于读取和编写Microsoft Excel,Word和PowerPoint文件的Java API。

您可以结帐POI的Javadoc here