【问题标题】:docx4j: how to customize output?docx4j:如何自定义输出?
【发布时间】:2018-03-06 23:53:58
【问题描述】:

我正在用 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?或者我如何在不重新实现数千行代码的情况下实现它:)?

非常感谢。

【问题讨论】:

    标签: java ms-word xhtml docx docx4j


    【解决方案1】:

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

    • XSLT + 扩展函数(工作完成的地方),或者
    • 纯 Java 方法(功能不完全一致)

    只需选择您要使用/修改的方法。

    注意:在 XHTML 到 docx 方向中支持此功能:https://github.com/plutext/docx4j-ImportXHTML/blob/master/src/main/java/org/docx4j/convert/in/xhtml/HeadingHandler.java

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-03
      • 1970-01-01
      • 1970-01-01
      • 2010-10-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多