我想知道是否有任何Java API允许生成类似Apache FOP的Word文档
使用FOP,可以指定样式表,该样式表定义打印数据(存储在xml文件中)的页面布局。
FOP库中的Transformer对象负责该操作。
word文档是否有任何等效的API?
答案 0 :(得分:1)
使用FOP,您可以尝试Word接受的XML to RTF。
From their webpage, XMLmind XSL-FO Converter显然会产生:
将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。