Docx4j-ImportXHTML无法用斜体标出文本

时间:2016-11-03 14:27:30

标签: docx4j

当在html中有加下划线的文本加斜体时,生成的docx会丢失下划线。

pom.xml依赖项:

    <dependency>
        <groupId>org.docx4j</groupId>
        <artifactId>docx4j-ImportXHTML</artifactId>
        <version>3.3.1</version>
    </dependency>

示例摘录:

public class UnderlineTests {

    static final String TEST_STRING = "<html><body><p><em>Italics</em></p>" +
            "<p><strong>Bold</strong></p>" +
            "<p><u>Underlined</u></p>" +
            "<p><strong><em>BoldItalics</em></strong></p>" +
            "<p><u><em>ItalicsUnderlined</em></u></p>" +
            "<p><strong><u>BoldUnderlined</u></strong></p></body></html>";
    public static void main(String[] args) throws ParserConfigurationException, Docx4JException {

        WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage.createPackage(PageSizePaper.A4, true);

        XHTMLImporterImpl XHTMLImporterForContent = new XHTMLImporterImpl(wordMLPackage);
        wordMLPackage.getMainDocumentPart().getContent().addAll(XHTMLImporterForContent.convert(TEST_STRING, null));
        wordMLPackage.save(new File("test.docx"));
    }
}

以上产生.docx结果,如:

this

请注意<p><u><em>ItalicsUnderlined</em></u></p>段没有加下划线!

请提供任何帮助(我需要保留<u>代码,因为html喂食来自CKEditor)?

1 个答案:

答案 0 :(得分:0)

我发现如果你改变下划线和斜体标签的顺序就行了!非常奇怪:

<p><em><u>ItalicsUnderlined</u></em></p>

以上作品!!!