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日

相关文章

  • asp.net实现的DES加密解密操作示例

    创建ASP.NET项目 首先,在您的本地计算机上使用Visual Studio或其他可用IDE工具创建一个新的ASP.NET项目。 添加DES加密算法库 为了实现DES加密解密操作,需要添加一个DES算法库,这里我们可以使用.NET框架内置的System.Security.Cryptography命名空间,该命名空间提供了强大的加密算法库。 在您的项目中,通…

    C# 2023年6月3日
    00
  • C#语法新特性之元组实例详解

    C#语法新特性之元组实例详解 什么是元组? 元组是C# 7.0版本引入的一种新的类型,它可以存储一组数据,而不是单一类型的数据。它的出现使得我们可以更方便地组合和传递数据。 元组可以用于处理多个返回值,而不必引入一个专门的类型来保存它们。元组内部可以存储不同类型的数据,这是它与数组和列表等常规集合类型的主要区别。 如何使用元组? 创建元组 创建元组很简单,可…

    C# 2023年5月31日
    00
  • C# ODP.NET 调用Oracle函数返回值时报错的一个解决方案

    下面是详细讲解“C#ODP.NET调用Oracle函数返回值时报错的一个解决方案”的完整攻略。 问题描述 在使用C#的ODP.NET连接Oracle数据库时,调用Oracle函数返回值时,往往会出现“Oracle.DataAccess.Client.OracleException: ORA-06502: PL/SQL: 数组或者记录数据类型必须具体化来解决这…

    C# 2023年5月15日
    00
  • ASP.NET Core使用EF SQLite对数据库增删改查

    下面我来详细讲解ASP.NET Core使用EF SQLite对数据库增删改查的完整攻略。这个过程包含以下步骤: 创建ASP.NET Core项目并添加EF SQLite支持 创建数据模型类 创建数据库上下文类 创建CRUD操作的API接口 运行应用程序检查功能 下面对每个步骤进行详细说明。 创建ASP.NET Core项目并添加EF SQLite支持 首先…

    C# 2023年6月3日
    00
  • .NET使用Collections.Pooled提升性能优化的方法

    .NET使用Collections.Pooled提升性能优化的方法 简述 在进行 .NET 开发过程中,尤其在一些高并发、大量数据操作的场景下,很容易出现内存泄漏和性能问题。而使用 C# 中的 Collections.Pooled 可以有效地缓解此类问题,从而提高程序的性能。本文将详细介绍 Collections.Pooled 的使用方法及优化效果。 Col…

    C# 2023年6月3日
    00
  • .NET Core对象池的应用:扩展篇

    .NET Core 对象池的应用:扩展篇 .NET Core 对象池是一种用于重用对象的机制,它可以提高应用程序的性能和可伸缩性。在 .NET Core 中,可以使用对象池来重用一些常用的对象,例如数据库连接、HTTP 请求等。本攻略将详细讲解 .NET Core 对象池的应用,包括如何扩展对象池以适应不同的需求。 1. 创建对象池 创建一个对象池,用于重用…

    C# 2023年5月17日
    00
  • Asp.Net(C#)自动执行计划任务的程序实例分析分享

    下面是”Asp.Net(C#)自动执行计划任务的程序实例分析分享”的完整攻略。 介绍 自动执行计划任务是指在一定的时间内,自动执行计划脚本任务的功能。在Asp.Net(C#)中,我们可以使用定时器Timer组件来实现自动执行计划任务的功能。 实现步骤 第一步:引入Timer组件 在项目中引入Timer组件: using System.Timers; 第二步:…

    C# 2023年6月3日
    00
  • C#实现Windows Form调用R进行绘图与显示的方法

    下面我将为您详细讲解“C#实现WindowsForm调用R进行绘图与显示的方法”的完整攻略。本攻略将分为以下几个步骤: 安装R语言环境和R.Net库 在使用C#调用R前,需要先安装R语言环境和R.Net库。可以在R官网(https://www.r-project.org/)下载最新版本的R语言环境,并在控制台中安装R.Net库。R.Net库可以通过NuGet…

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