C#如何给word文档添加水印

给word文档添加水印可以通过C#代码实现,具体步骤如下:

步骤一:引用Microsoft.Office.Interop.Word库

水印的添加需要使用到Word操作库,因此需要先引用Microsoft.Office.Interop.Word库。在Visual Studio中,可以在解决方案资源管理器中右击项目,选择“添加引用”,在COM中找到“Microsoft Word xx Object Library”勾选即可。

步骤二:打开Word文档并添加水印

打开Word文档可以使用Application类,添加水印则需要在文档中插入一个水印形状。

using Microsoft.Office.Interop.Word;

// 打开Word文档
var wordApp = new Application();
var doc = wordApp.Documents.Open("C:\\test.docx");

// 新增一个水印
var shape = doc.Shapes.AddTextEffect(
    MsoPresetTextEffect.msoTextEffect1, "Watermark", 
    "Arial", 36,
    MsoTriState.msoTrue, MsoTriState.msoFalse, 0, 0);
shape.Select();
shape.TextEffect.NormalizedHeight = MsoTriState.msoTrue;
shape.Fill.Visible = MsoTriState.msoFalse;
shape.Line.Visible = MsoTriState.msoFalse;
shape.WrapFormat.AllowOverlap = -1;
shape.WrapFormat.Side = WdWrapSideType.wdWrapBoth;
shape.WrapFormat.Type = WdWrapType.wdWrapNone;
shape.RelativeHorizontalPosition = WdRelativeHorizontalPosition.wdRelativeHorizontalPositionMargin;
shape.RelativeVerticalPosition = WdRelativeVerticalPosition.wdRelativeVerticalPositionMargin;
shape.Left = (float)WdShapePosition.wdShapeCenter;
shape.Top = (float)WdShapePosition.wdShapeCenter;

该示例使用msoTextEffect1形状作为水印,设置文字为“Watermark”,字体为“Arial”,字号为36。同时设置水印为纵向,不显示填充和边框,覆盖整个页,固定在页边距中心位置。

步骤三:保存Word文档

完成水印添加后需要将更改保存到文件中。

// 保存Word文档
doc.Save();
doc.Close();

完整代码示例:

using Microsoft.Office.Interop.Word;

namespace AddWatermarkToWord
{
    class Program
    {
        static void Main(string[] args)
        {
            // 打开Word文档
            var wordApp = new Application();
            var doc = wordApp.Documents.Open("C:\\test.docx");

            // 新增一个水印
            var shape = doc.Shapes.AddTextEffect(
                MsoPresetTextEffect.msoTextEffect1, "Watermark", 
                "Arial", 36,
                MsoTriState.msoTrue, MsoTriState.msoFalse, 0, 0);
            shape.Select();
            shape.TextEffect.NormalizedHeight = MsoTriState.msoTrue;
            shape.Fill.Visible = MsoTriState.msoFalse;
            shape.Line.Visible = MsoTriState.msoFalse;
            shape.WrapFormat.AllowOverlap = -1;
            shape.WrapFormat.Side = WdWrapSideType.wdWrapBoth;
            shape.WrapFormat.Type = WdWrapType.wdWrapNone;
            shape.RelativeHorizontalPosition = WdRelativeHorizontalPosition.wdRelativeHorizontalPositionMargin;
            shape.RelativeVerticalPosition = WdRelativeVerticalPosition.wdRelativeVerticalPositionMargin;
            shape.Left = (float)WdShapePosition.wdShapeCenter;
            shape.Top = (float)WdShapePosition.wdShapeCenter;

            // 保存Word文档
            doc.Save();
            doc.Close();
        }
    }
}

以上示例实现了在Word文档中添加一个文字水印的功能。如果要添加图片水印,可以使用AddPicture方法,具体使用可以参考Word操作库的文档。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#如何给word文档添加水印 - Python技术站

(0)
上一篇 2023年6月6日
下一篇 2023年6月6日

相关文章

  • 玩转-SQL2005数据库行列转换

    玩转-SQL2005数据库行列转换 介绍 SQL2005数据库行列转换是将数据库中的行数据转换为列,或将列数据转换为行。这个功能加强了数据库的数据处理能力,方便了数据分析和可视化工作。本文将详细介绍SQL2005数据库行列转换的使用方法。 实现方法 SQL2005数据库行列转换可以通过使用PIVOT和UNPIVOT等SQL语句实现。其中,PIVOT可以将行数…

    C# 2023年6月8日
    00
  • C#将布尔类型转换成字节数组的方法

    当将布尔类型的数据转换为字节数组时,我们需要首先将布尔类型的数据转换为它对应的字节数。在C#中,布尔类型占用一个字节(8位),可以表示两种状态:True和False,其中True用字节0x01表示,False用字节0x00表示。 接下来我们使用BitConverter.GetBytes()方法将布尔类型数据转换为字节数组。以下是完整的代码: bool b =…

    C# 2023年6月7日
    00
  • c# Linq查询详解

    C# LINQ查询详解 什么是LINQ LINQ即Language Integrated Query,是一种能够方便地操作数据的技术,它提供了一种类似SQL查询语句的方式来查询集合、数据库等多种类型的数据源。LINQ能够进行多项查询、排序、过滤、分组处理等多种操作,简化了数据操作的流程,使得C#程序员能够更加高效地进行编码。 LINQ的基本结构 LINQ查询…

    C# 2023年6月1日
    00
  • 详解如何在ASP.NET Core中应用Entity Framework

    如何在 ASP.NET Core 中应用 Entity Framework Entity Framework 是一个对象关系映射(ORM)框架,可以将数据库中的数据映射到 .NET 对象中。在 ASP.NET Core 中,可以使用 Entity Framework 来访问和操作数据库。本攻略将详细介绍如何在 ASP.NET Core 中应用 Entity …

    C# 2023年5月17日
    00
  • 详解C# parallel中并行计算的四种写法总结

    详解 C# parallel 中并行计算的四种写法总结 背景 在 C# 编程中,使用 parallel 可以实现多核处理器的并行计算。本文将详细讲解 parallel 中并行计算的四种写法。 什么是 parallel parallel 是 C# 中一个能实现多核并行处理的类库。它能提供简单易用的 API 对数据进行并行处理,从而提高程序的运行效率。 四种并行…

    C# 2023年6月7日
    00
  • C#中的Task.WhenAll和Task.WhenAny方法介绍

    C#中的Task.WhenAll和Task.WhenAny方法介绍 在C#中,我们经常使用Task来进行异步编程,Task.WhenAll和Task.WhenAny则是Task API中的两个非常有用的方法。 Task.WhenAll Task.WhenAll方法接收一个Task列表,并在所有Task都执行完成后返回一个新的Task。这个新的Task为完成状…

    C# 2023年6月1日
    00
  • C#程序最小化到托盘图标操作步骤与实现代码

    实现将C#程序最小化到托盘图标需要完成以下几个步骤: 绑定系统托盘控件:在窗体上添加一个ContextMenu控件,然后在程序启动的时候绑定到系统托盘控件上。 private NotifyIcon notifyIcon; private void BindNotifyIcon() { notifyIcon = new NotifyIcon(); notify…

    C# 2023年6月6日
    00
  • C# PictureBox控件方法参数及图片删除重命名上传详解

    C# PictureBox控件方法参数及图片删除重命名上传详解 控件介绍 PictureBox控件是 C#中非常常用的图片显示控件,可以显示多种图片格式的静态图像和动态图像。 常用方法及参数 PictureBox.ImageLocation 属性 该属性可以指定 PictureBox 控件要显示的图像文件的路径,路径可以是绝对路径,也可以是相对于应用程序包含…

    C# 2023年5月15日
    00
合作推广
合作推广
分享本页
返回顶部