C#教程

关注公众号 jb51net

关闭
首页 > 软件编程 > C#教程 > C# Word段落或文本添加底纹

C#代码轻松实现为Word段落或文本添加底纹

作者:2501_93070778

在 Microsoft Word 中,底纹功能可以为指定的文本或段落添加背景颜色,本文将介绍如何使用 C# 为 Word 中的段落或指定文本添加底纹,并通过 .NET 文档处理库实现这一功能,有需要的可以了解下

在 Microsoft Word 中,底纹功能可以为指定的文本或段落添加背景颜色。合理使用底纹不仅能够提升文档的视觉效果,还可以帮助区分不同内容区域,使文档结构更加清晰、内容更易阅读。

本文将介绍如何使用 C# 为 Word 中的段落或指定文本添加底纹,并通过 .NET 文档处理库实现这一功能。

安装 .NET 文档处理库

首先,需要将相关文档处理库中的 DLL 文件添加到 .NET 项目中作为引用。

PM> Install-Package Spire.Doc

使用 C# 为 Word 段落添加底纹

在 C# 中,可以通过设置段落的背景颜色,为 Word 文档中的指定段落添加底纹。相关 .NET 文档处理库通常提供对应的属性和方法来实现这一功能。以下是具体步骤:

完整示例代码如下:

using Spire.Doc;
using Spire.Doc.Documents;
using System.Drawing;
namespace WordParagrahShade
{
    class Program
    {
        static void Main(string[] args)
        {
            // 创建一个 Document 实例
            Document document = new Document();
            // 加载 Word 文档
            document.LoadFromFile("Sample.docx");
            // 获取第一个节
            Section section = document.Sections[0];
            // 获取第二个段落
            Paragraph paragaph = section.Paragraphs[1];
            // 设置段落的背景颜色
            paragaph.Format.BackColor = Color.Yellow;
            // 保存处理后的文档
            document.SaveToFile("ParagraphBackground.docx", FileFormat.Docx);
        }
    }
}

使用 C# 为 Word 中的指定文本添加底纹

如果只需要为 Word 中的指定文本添加底纹,可以先通过 Paragraph.Find() 方法查找目标文本,获取其文本范围,然后通过 TextRange.CharacterFormat.TextBackgroundColor 属性为该文本范围设置背景颜色。具体步骤如下:

完整示例代码如下:

using Spire.Doc;
using Spire.Doc.Documents;
using Spire.Doc.Fields;
using System.Drawing;

namespace ShadeText
{
    class Program
    {
        static void Main(string[] args)
        {
            // 创建一个 Document 实例
            Document document = new Document();

            // 加载 Word 文档
            document.LoadFromFile("Sample.docx");

            // 获取第一个节
            Section section = document.Sections[0];

            // 获取第一个段落
            Paragraph paragaph = section.Paragraphs[0];

            // 在段落中查找指定文本
            TextSelection selection = paragaph.Find("Spire.Doc for .NET", true, false);

            // 获取找到文本的文本范围
            TextRange range = selection.GetAsOneRange();

            // 设置文本范围的背景颜色
            range.CharacterFormat.TextBackgroundColor = Color.Red;

            // 保存处理后的文档
            document.SaveToFile("TextBackground.docx", FileFormat.Docx);
        }
    }
}

知识扩展

在 C# 中为 Word 段落或文本添加底纹(背景色或图案),常用的方法有三种:使用 Aspose.WordsSpire.Doc 或 Open XML SDK
底纹可以作用于整个段落(Paragraph)或特定的文本范围(Run)。下面分别给出三种库的实现方案。

准备工作

创建一个 .NET 控制台项目(.NET 6+ 或 Framework),根据需要安装对应的 NuGet 包。

安装命令说明
Aspose.WordsInstall-Package Aspose.Words商业库,功能强大
Spire.DocInstall-Package Spire.Doc商业库(有免费版限制)
Open XML SDKInstall-Package DocumentFormat.OpenXml免费开源,微软官方

商业库需要授权,免费版通常有水印或页数限制。

方案一:使用 Aspose.Words(推荐)

1. 为整个段落设置底纹(背景色)

using Aspose.Words;
using Aspose.Words.Drawing;

public static void AddShadingToParagraph(string docPath, string savePath)
{
    Document doc = new Document(docPath);
    DocumentBuilder builder = new DocumentBuilder(doc);

    // 插入一个段落
    builder.Writeln("这是一个有底纹的段落。");

    // 获取第一个段落
    Paragraph para = doc.FirstSection.Body.Paragraphs[0];

    // 设置段落底纹(背景色)
    para.ParagraphFormat.Shading.BackgroundPatternColor = Color.LightBlue;

    doc.Save(savePath);
}

2. 为特定文本(Run)设置底纹

文本底纹实际上是给 Run 对象设置字符样式中的底纹。

public static void AddShadingToText(string docPath, string savePath)
{
    Document doc = new Document(docPath);
    DocumentBuilder builder = new DocumentBuilder(doc);

    builder.Writeln("普通文本。");
    builder.Write("这段文字有");
    builder.Font.Shading.BackgroundPatternColor = Color.Yellow;
    builder.Write("黄色底纹");
    builder.Font.Shading.ClearFormatting(); // 清除底纹
    builder.Write("。后续正常。");

    doc.Save(savePath);
}

说明Font.Shading 控制当前字体样式,会影响之后写入的文本,直到清除或修改。

方案二:使用 Spire.Doc

1. 给段落添加底纹

using Spire.Doc;
using Spire.Doc.Fields;
using System.Drawing;

public static void AddShadingToParagraphSpire(string docPath, string savePath)
{
    Document doc = new Document();
    doc.LoadFromFile(docPath);

    Section section = doc.Sections[0];
    Paragraph para = section.AddParagraph();
    para.AppendText("这段落有灰色底纹。");

    // 设置段落背景色
    para.Format.BackColor = Color.LightGray;

    doc.SaveToFile(savePath, FileFormat.Docx2016);
}

2. 给文本范围(TextRange)添加底纹

public static void AddShadingToTextSpire(string docPath, string savePath)
{
    Document doc = new Document();
    doc.LoadFromFile(docPath);

    Section section = doc.Sections[0];
    Paragraph para = section.AddParagraph();

    TextRange range = para.AppendText("带绿色底纹的文字");
    range.CharacterFormat.BackColor = Color.Green;

    doc.SaveToFile(savePath, FileFormat.Docx2016);
}

Spire.Doc 的免费版会在文档中添加水印,且限制操作页数。

方案三:使用 Open XML SDK(免费开源,底层控制)

Open XML SDK 直接操作 Word 的 XML 结构,需要手动创建底纹元素。

1. 为段落添加底纹

using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Wordprocessing;
using DocumentFormat.OpenXml;
using System.Linq;
public static void AddShadingToParagraphOpenXml(string docPath, string savePath)
{
    using (WordprocessingDocument doc = WordprocessingDocument.Open(docPath, true))
    {
        Body body = doc.MainDocumentPart.Document.Body;
        // 获取第一个段落
        Paragraph para = body.Descendants<Paragraph>().FirstOrDefault();
        if (para != null)
        {
            // 创建段落属性对象
            ParagraphProperties pp = para.GetFirstChild<ParagraphProperties>();
            if (pp == null)
            {
                pp = new ParagraphProperties();
                para.PrependChild(pp);
            }
            // 创建底纹属性(背景色)
            Shading shading = new Shading()
            {
                Val = ShadingPatternValues.Clear, // 纯色
                Color = "auto",
                Fill = "FF0000" // 红色(十六进制 RGB)
            };
            pp.Shading = shading;
        }
        doc.Save();
    }
}

2. 为特定文本(Run)添加底纹

public static void AddShadingToRunOpenXml(string docPath, string savePath)
{
    using (WordprocessingDocument doc = WordprocessingDocument.Open(docPath, true))
    {
        Body body = doc.MainDocumentPart.Document.Body;

        // 获取第一个段落
        Paragraph para = body.Descendants&lt;Paragraph&gt;().FirstOrDefault();
        if (para != null)
        {
            // 创建 Run 并添加文本
            Run run = new Run();
            RunProperties rp = new RunProperties();

            // 设置字符底纹(背景色)
            Shading shading = new Shading()
            {
                Val = ShadingPatternValues.Clear,
                Color = "auto",
                Fill = "00FF00" // 绿色
            };
            rp.Shading = shading;

            run.AppendChild(rp);
            run.AppendChild(new Text("绿色底纹的文字"));

            para.AppendChild(run);
        }

        doc.Save();
    }
}

总结

通过 C# 可以灵活地为 Word 文档中的指定文本或段落添加底纹,从而突出重要内容并改善文档的可读性。对于整段内容,可以直接设置段落的背景颜色;如果只需要突出部分文字,则可以先查找目标文本,再针对对应的文本范围设置背景颜色。

本文介绍了这两种常见的实现方式,并展示了如何通过 .NET 文档处理库完成相关操作。根据实际需求选择段落级或文本级底纹,可以更加精准地控制 Word 文档的格式和视觉效果。

以上就是C#代码轻松实现为Word段落或文本添加底纹的详细内容,更多关于C# Word段落或文本添加底纹的资料请关注脚本之家其它相关文章!

您可能感兴趣的文章:
阅读全文