Java 更改 Word 文档中文本颜色

在日常的自动化文档处理中,我们经常会遇到需要对 Word 文档内容进行编程修改的需求,其中一项常见且重要的操作就是更改文本的颜色。无论是为了突出重点、统一品牌风格,还是实现动态内容展示,精准地修改文本颜色都是一个核心痛点。本文将深入探讨如何使用强大的 Java 库 Spire.Doc for Java 来高效、灵活地实现 Word 文档中文本颜色的更改,为广大 Java 开发者提供一个清晰、实用的解决方案。

Spire.Doc for Java 库简介与安装

Spire.Doc for Java 是一个专业的 Word 文档处理组件,它允许开发者在 Java 应用程序中创建、读取、写入、转换和打印 Word 文档。该库提供了丰富的 API,能够处理 Word 文档的各种元素,包括文本、段落、表格、图片、超链接等,极大地简化了复杂的文档操作。

Maven 依赖配置

要在您的项目中集成 Spire.Doc for Java,最便捷的方式是通过 Maven。以下是 Maven 的依赖配置示例:

xml 复制代码
    
    
    
  <repositories>
    <repository>
        <id>com.e-iceblue</id>
        <name>e-iceblue</name>
        <url>https://repo.e-iceblue.cn/repository/maven-public/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>e-iceblue</groupId>
        <artifactId>spire.doc</artifactId>
        <version>13.8.7</version>
    </dependency>
</dependencies>

Java 更改指定段落的文本颜色

修改 Word 文档中某个特定段落的文本颜色是一个常见的需求。Spire.Doc 允许我们通过段落索引来定位,然后遍历其内部的文本范围并设置颜色。

以下代码示例演示了如何加载一个 Word 文档,并将第一个段落的所有文本颜色更改为蓝色:

java 复制代码
    
    
    
  import com.spire.doc.Document;
import com.spire.doc.FileFormat;
import com.spire.doc.Section;
import com.spire.doc.documents.Paragraph;
import com.spire.doc.documents.ParagraphStyle;

import java.awt.*;

public class ChangeFontColorForParagraph {
    public static void main(String []args){
        //创建一个Document实例
        Document document = new Document();
        //加载Word文档
        document.loadFromFile("C:\\Users\\Administrator\\Desktop\\Sample.docx");

        //获取第一节
        Section section = document.getSections().get(0);

        //更改第一个段落的文本颜色
        Paragraph p1 = section.getParagraphs().get(0);
        ParagraphStyle s1 = new ParagraphStyle(document);
        s1.setName("Color1");
        s1.getCharacterFormat().setTextColor(new Color(188, 143, 143));
        document.getStyles().add(s1);
        p1.applyStyle(s1.getName());

        //更改第二段的文本颜色
        Paragraph p2 = section.getParagraphs().get(1);
        ParagraphStyle s2 = new ParagraphStyle(document);
        s2.setName("Color2");
        s2.getCharacterFormat().setTextColor(new Color(0, 0, 139));;
        document.getStyles().add(s2);
        p2.applyStyle(s2.getName());

        //保存结果文档
        document.saveToFile("ChangeParagraphTextColor.docx", FileFormat.Docx);
    }
}

代码解释:

  • document.loadFromFile("input.docx"):加载名为 input.docx 的 Word 文档。
  • document.getSections().get(0):获取文档的第一个节。
  • section.getParagraphs().get(0):获取第一个节中的第一个段落。
  • s1.getCharacterFormat().setTextColor(new Color(188, 143, 143)):给获取到段落中的文本设置新的颜色,该颜色通过 RGB 值指定。
  • document.saveToFile():保存修改后的文档。

Java 更改指定文本的颜色

有时候,我们可能需要更精细地控制,只修改文档中特定文本内容的颜色,而不是整个段落。Spire.Doc 提供了查找功能,可以帮助我们定位到这些特定的文本。

以下代码示例演示了如何在文档中查找所有匹配"Spire.Doc for .NET"的文本,并将其颜色更改为红色:

java 复制代码
    
    
    
  import com.spire.doc.Document;
import com.spire.doc.FileFormat;
import com.spire.doc.documents.TextSelection;

import java.awt.*;

public class ChangeFontColorForText {
    public static void main(String []args){
        //创建一个Document实例
        Document document = new Document();
        //加载Word文档
        document.loadFromFile("C:\\Users\\Administrator\\Desktop\\Sample.docx");

        //找到要更改字体颜色的文本
        TextSelection[] text = document.findAllString("Spire.Doc for .NET", false, true);
        //更改搜索文本的字体颜色
        for (TextSelection seletion : text)
        {
            seletion.getAsOneRange().getCharacterFormat().setTextColor(Color.red);
        }
        //保存结果文档
        document.saveToFile("ChangeCertainTextColor.docx", FileFormat.Docx);

    }
}

代码解释:

  • document.findAllString():在整个文档中查找所有匹配字符串的文本。false 表示不区分大小写,true 表示匹配整个单词。
  • selection.getAsOneRange():将找到的文本选择转换为一个 TextRange 对象,方便进行格式修改。
  • TextRange.getCharacterFormat().setTextColor():设置查找到的特定文本的颜色。

总结

Spire.Doc for Java 提供了一套强大而灵活的 API,使得在 Java 应用程序中更改 Word 文档中文本颜色变得简单高效。通过上述示例,我们不仅学会了如何修改整个段落的文本颜色,还掌握了如何精准定位并修改文档中特定文本的颜色。无论是进行自动化报告生成、文档内容审查,还是实现个性化文档定制,Spire.Doc for Java 都在自动化文档处理中展现出其卓越的价值。鼓励开发者们进一步探索 Spire.Doc for Java 的更多功能,以应对更复杂的文档处理需求。

相关推荐
SccTsAxR11 小时前
算法基石:手撕离散化、递归与分治
c++·经验分享·笔记·算法
其实秋天的枫12 小时前
2026年新大纲普通话考试真题题库50套(PDF电子版)
经验分享·pdf
优化控制仿真模型15 小时前
2026年新大纲普通话考试真题题库50套(PDF电子版)
经验分享·pdf
中屹指纹浏览器16 小时前
2026指纹浏览器技术架构深度解析:从隔离原理到性能优化的全链路实践
经验分享·笔记
其实秋天的枫16 小时前
考研英语一历年真题及答案PDF电子版(1998-2026年)
经验分享·pdf
优化控制仿真模型16 小时前
【27考研】考研英语一历年真题及答案PDF电子版(1998-2026年)
经验分享·pdf
森诺Alyson16 小时前
前沿技术借鉴研讨-2026.4.9(视觉语言模型)
论文阅读·人工智能·经验分享·语言模型·自然语言处理·论文笔记·论文讨论
LaughingZhu16 小时前
Product Hunt 每日热榜 | 2026-04-09
人工智能·经验分享·深度学习·神经网络·产品运营
知己呀16 小时前
MySQL主从延迟根因诊断与优化指南
经验分享·mysql·面试·八股文·主从延迟
2501_9426233416 小时前
AR智能眼镜赋能工业4.0:五大典型应用场景解析
经验分享