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日

相关文章

  • Microsoft .Net Remoting系列教程之二:Marshal、Disconnect与生命周期以及跟踪服务

    下面是关于“Microsoft.NetRemoting系列教程之二:Marshal、Disconnect与生命周期以及跟踪服务”的完整攻略,包含两个示例。 1. Marshal 在.NET Remoting中,Marshal是一个重要的类,用于将对象从一个应用程序域传输到另一个应用程序域。Marshal类提供了一组静态方法,用于创建远程对象、获取远程对象的代…

    C# 2023年5月15日
    00
  • C#实现获取Excel中图片所在坐标位置

    获取Excel中图片所在坐标位置主要涉及到读取Excel文件、解析Excel文件和处理Excel文件中的图片等技术。下面是一些概述步骤: 步骤一:引入所需的依赖项 引入 Microsoft.Office.Interop.Excel 库,该库可用于操作Excel。 引入 System.Drawing 库,该库可用于处理图像。 步骤二:读取Excel文件 使用 …

    C# 2023年6月7日
    00
  • Unity 数据存储和读取的方法汇总

    下面是关于Unity数据存储和读取方法的详细攻略,我们将涉及两种常见的数据存储和读取方法:PlayerPrefs和Json文件。 PlayerPrefs PlayerPrefs是Unity内置的一种数据存储方式,它使用键值对来存储和读取数据。在使用PlayerPrefs时,需要指定一个键(Key)和一个值(Value)。下面是一个使用PlayerPrefs存…

    C# 2023年6月3日
    00
  • C# winForm自定义弹出页面效果

    接下来我将详细讲解C# WinForm自定义弹出页面效果的完整攻略。我们可以通过以下步骤实现: 1. 创建自定义控件 首先,我们需要创建一个继承自Panel的自定义控件,并设置其BorderStyle为None,这样就可以去掉控件的边框。 public class CustomPanel : Panel { public CustomPanel() { th…

    C# 2023年5月15日
    00
  • winform 实现选择文件和选择文件夹对话框的简单实例

    以下是“winform 实现选择文件和选择文件夹对话框的简单实例”的攻略。 1. 引言 在编写 winform 程序时,我们常常需要用到让用户选择文件或者目录的功能。实现这个功能,我们需要用到 System.Windows.Forms 命名空间中的 OpenFileDialog 和 FolderBrowserDialog 类。 2. 实现选择文件对话框 接下…

    C# 2023年6月1日
    00
  • ASP .NET中执行控件(如ImageButton、LinkButton等)命令不刷新页面

    ASP .NET中执行控件命令(如ImageButton、LinkButton等)不刷新页面的方案主要有两种: 使用UpdatePanel控件 UpdatePanel控件是ASP .NET中的异步刷新控件,它可以实现部分页面的异步刷新,从而使得页面局部刷新,不需要整个页面重新加载。在这种方式下,执行控件命令不会刷新整个页面,而是只会刷新UpdatePanel…

    C# 2023年6月3日
    00
  • .Net Core解决WebAPI中返回时间格式带T的问题

    下面我将为您介绍“.Net Core解决Web API中返回时间格式带T的问题”的完整攻略,包括问题背景、原因分析、解决方案及相应示例说明。 问题背景 在使用 .NET Core Web API 开发 Web 服务时,经常会遇到日期时间格式带T的问题。例如,返回的时间格式可能会长成 2021-01-01T00:00:00 的样子。这种时间格式对于人来说不太友…

    C# 2023年6月3日
    00
  • C#关键字之重写override介绍

    C#关键字之重写override介绍 什么是重写 在面向对象编程中,重写是指在子类中对父类中已有的方法进行重新实现。当子类继承自父类时,子类继承了父类的方法,但是有时候子类需要对这些方法进行修改或者扩展,这就需要使用到重写。 override关键字 在C#中,使用override关键字来重写父类的方法,重写的方法必须与被重写的方法具有相同的名称、返回类型、参…

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