【问题标题】:docx4j import style from other .docx problemdocx4j 从其他 .docx 问题导入样式
【发布时间】: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 并更改文本样式,它将是导入的样式。

【问题讨论】:

  • 你已经替换了所有的样式。
  • 是的,但正如我所写,当我写有样式的段落时,该样式将是默认样式,而不是替换样式。

标签: java import styles docx4j


【解决方案1】:

我有办法。我在匈牙利语中使用Word,匈牙利语中的“Heading1”是“Címsor1”。

所以不要这样:

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

我必须使用这个:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-10
    • 1970-01-01
    • 2021-03-22
    • 1970-01-01
    • 1970-01-01
    • 2021-06-15
    • 1970-01-01
    • 2021-01-21
    相关资源
    最近更新 更多