【问题标题】:Apply style to specific text in a styled paragraph using Docx4j使用 Docx4j 将样式应用于样式段落中的特定文本
【发布时间】:2016-07-09 18:32:50
【问题描述】:

如何使用 Docx4j 将 italic 样式应用于样式段落中的特定文本?

假设一个段落,如下所示,已添加到文档中并且已经具有样式。

word1 word2 word3 word4

我需要的是 italic 样式应用到 word3 并且段落的一般样式没有被修改,所以 words word1 word2word4 保持原样。

提前致谢。

【问题讨论】:

    标签: java docx4j


    【解决方案1】:

    当然,您需要 word3 处于自己的运行 (w:r) 中,因此您可以将斜体 (w:i) 的运行属性 (w:rPr) 应用到它。

    首先,如果需要,您需要逻辑来拆分运行。

    然后简单地应用格式。要了解如何做到这一点,请创建一个应用斜体的 docx(在 Word 中)。使用 docx4j webapp 或 Word Helper AddIn 生成适用的代码。

    【讨论】:

    • 能否请您发布一些有关如何操作的代码。我能够使用 docx4j webapp 生成对象,但我没有发现它有用。也不知道如何拆分运行。谢谢
    【解决方案2】:

    我可以通过解组如下文本字符串来实现它:

    p = (P) XmlUtils.unmarshalString(
        "<w:p xmlns:w=\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\" xmlns:xml=\"http://www.w3.org/XML/1998/namespace\">"
        + "<w:pPr><w:pStyle w:val=\"style\"/></w:pPr>"
        + "<w:r><w:t xml:space=\"preserve\">word1 word2 </w:t></w:r>"
        + "<w:r><w:rPr><w:i/></w:rPr><w:t>word3</w:t></w:r>"
        + "<w:r><w:t xml:space=\"preserve\"> word4</w:t></w:r></w:p>");
    

    并将其添加到文档中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多