docx4j从其他.docx问题导入样式



我从这里获得代码:Docx4j从一个.docx导出样式,并在另一个.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");

如果我添加这个pharagraph,在创建的.docx文件中,Title样式将是默认的docx4j样式,但Heading1将与template.docx中的相同。如果我将"标题"更改为"标题1",我也会遇到同样的问题,但标题1样式将是默认样式,标题将是导入的样式。因此,如果我在代码中添加样式段落,样式将更改为默认样式,但如果我不添加样式段落并且我在Word中打开创建的docx并更改文本样式,它将是导入的样式。

我有解决方案。我在匈牙利语中使用Word,匈牙利语中的"Heading1"是"Címsor1">

因此,取而代之的是:

wordMLPackage.getMainDocumentPart().addStyledParagraphOfText("Heading1", "Test");

我必须使用这个:

wordMLPackage.getMainDocumentPart().addStyledParagraphOfText("Cmsor1", "Test");

最新更新