【发布时间】:2018-12-04 10:22:01
【问题描述】:
我从这里获取代码:Docx4j export style from one .docx and use it in another .docx
WordprocessingMLPackage wordMLPackage2 = WordprocessingMLPackage.load(new java.io.File(System.getProperty("user.dir") + "/template.docx"));
MainDocumentPart tempDocPart = wordMLPackage2.getMainDocumentPart();
StyleDefinitionsPart sdp = tempDocPart.getStyleDefinitionsPart();
Styles tempStyle = sdp.getJaxbElement();
wordMLPackage.getMainDocumentPart().getStyleDefinitionsPart().setJaxbElement(tempStyle);
所以我从 template.docx 中导入样式,在那里我创建了自己的 Heading1 ant Title 样式。它的工作,我在以下代码中有问题:
wordMLPackage.getMainDocumentPart().addStyledParagraphOfText("Title", "Title test");
如果我添加这个短语,在创建的 .docx 文件中,Title 样式将是默认的 docx4j 样式,但 Heading1 将与 template.docx 中的相同。 如果我将“标题”更改为“标题 1”,我也会遇到同样的问题,但标题 1 样式将是默认样式,标题将是导入的样式。 因此,如果我在代码中添加样式段落,样式将更改为默认样式,但如果我不添加样式段落并且我在 Word 中打开创建的 docx 并更改文本样式,它将是导入的样式。
【问题讨论】:
-
你已经替换了所有的样式。
-
是的,但正如我所写,当我写有样式的段落时,该样式将是默认样式,而不是替换样式。