docx4j:如何自定义输出?

时间:2018-03-06 23:53:59

标签: java ms-word xhtml docx docx4j

我正在使用docx4j进行一些测试。我需要做的是将复杂的Word文档(2-3页文本,表格,项目符号列表,图像)转换为xhtml。

我举了这个例子:https://github.com/plutext/docx4j/blob/master/src/samples/docx4j/org/docx4j/samples/ConvertOutHtml.java

并且它工作正常,我只有一个问题,生成的xhtml很复杂。我需要简化它并将其标准化以进行其他转换,稍后再做,更容易。

如何自定义特定元素的输出。如果我说得对,在幕后,OOXML变成了JAXB,然后应用xsl来生成输出。

例如,我想将标题输出为

<h1>Third heading</h1>等......

而不是

<p class="Heading1 Normal DocDefaults ">
    <span class="" style="font-family: 'Calibri Light';">Third Heading</span>
</p>

我不需要太复杂的结构和类......

是否可以更改xsl?或者我如何在不重新实现数千行代码的情况下实现它?)?

非常感谢。

1 个答案:

答案 0 :(得分:0)

我不认为有使用h1,h2元素的支持但是它很容易添加(几年前我曾为某人做过这个,但它不是docx4j的一部分)。 XHTML输出可以通过两种方式生成:

  • XSLT +扩展功能(工作完成的地方)或
  • 一种纯Java方法(不完全是功能奇偶校验)

选择您想要使用/修改哪种方法。

注意:在XHTML到docx方向上支持这一点:https://github.com/plutext/docx4j-ImportXHTML/blob/master/src/main/java/org/docx4j/convert/in/xhtml/HeadingHandler.java