在工作中遇到个需求,需要给Word文档添加水印搞了一天才搞出来,所以在此记录一下:

重点用到了E-iceblue官网下载到的:Spire.dll

using Spire.Doc;
using Spire.Doc.Documents;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading;
using System.Windows.Forms;namespace WayGo.GZ.Common
{public class WordSetWaterMark{private string loadpath{get;set;}private string filetype{get;set;}/// <summary>///  流程正文添加水印/// </summary>/// <param name="wordpath">加载的文档路径</param>/// <param name="waterword">添加水印文字</param>/// <returns></returns>public static bool WordSetWaterExecute(string wordpath, string waterword, string type){try{if (type == "doc"){//word 添加水印Document doc = new Document();doc.LoadFromFile(wordpath);TextWatermark txtWatermark = new TextWatermark();txtWatermark.Text = waterword;txtWatermark.FontSize = 30;txtWatermark.Layout = WatermarkLayout.Diagonal;doc.Watermark = txtWatermark;Thread newThread = new Thread(new ParameterizedThreadStart(saveFileName));newThread.SetApartmentState(ApartmentState.STA);//设置这个参数,指示应用程序的COM线程模型 是 单线程单元newThread.Start(doc);return true;}else{WordSetWaterMark model = new WordSetWaterMark();model.filetype = type;model.loadpath = wordpath;Thread newThread = new Thread(new ParameterizedThreadStart(saveFileName));newThread.SetApartmentState(ApartmentState.STA);//设置这个参数,指示应用程序的COM线程模型 是 单线程单元newThread.Start(model);return true;}}catch (Exception e){throw;}}//打开保存路径private static void saveFileName(object document){Document doc = (Document)document;SaveFileDialog sfd = new SaveFileDialog();//设置文件类型 sfd.Filter = "(*.doc)|*.doc";//设置默认文件类型显示顺序 sfd.FilterIndex = 1;//保存对话框是否记忆上次打开的目录 sfd.RestoreDirectory = true;//点了保存按钮进入 if (sfd.ShowDialog() == DialogResult.OK){string localFilePath = sfd.FileName.ToString(); //获得文件路径 //添加水印保存doc.SaveToFile(localFilePath);}}//非doc 文件打开保存路径private static void saveFileName1(object word){WordSetWaterMark model = (WordSetWaterMark)word;SaveFileDialog sfd = new SaveFileDialog();//设置文件类型 sfd.Filter = "(*." + model.filetype + ")|*." + model.filetype;//设置默认文件类型显示顺序 sfd.FilterIndex = 1;//保存对话框是否记忆上次打开的目录 sfd.RestoreDirectory = true;//点了保存按钮进入 if (sfd.ShowDialog() == DialogResult.OK){string localFilePath = sfd.FileName.ToString(); //获得文件路径               FileStream RFile = new FileStream(model.loadpath, FileMode.Open, FileAccess.Read);FileStream WFile = new FileStream(localFilePath, FileMode.Create, FileAccess.Write);Byte[] buffer = new byte[RFile.Length];while (true){int r = RFile.Read(buffer, 0, buffer.Length);if (r == 0){break;}WFile.Write(buffer, 0, r);}RFile.Close();WFile.Close();}}}
}

测试:

string path="需要添加水印文件的绝对地址";
string waterword ="我是水印";
string type="doc";
//调用WordSetWaterMark.WordSetWaterExecute(path, waterword , type);

C# Word文档添加水印相关推荐

  1. C# 给word文档添加水印

    C# 给word文档添加水印 和PDF一样,在word中,水印也分为图片水印和文本水印,给文档添加图片水印可以使文档变得更为美观,更具有吸引力.文本水印则可以保护文档,提醒别人该文档是受版权保护的,不 ...

  2. 如何用java代码给Word文档添加水印?

    为防止非法使用.定义所有权.显示文档状态等多种目的,在 Word 文档中添加水印.在本文中,您将学习如何使用 Java 为 Word 文档添加水印.文章将分别演示如何将文字和图片水印插入到Word文档 ...

  3. Word处理控件Aspose.Words功能演示:使用 Java 为 Word 文档添加水印

    为防止非法使用.定义所有权.显示文档状态等多种目的,在 Word 文档中添加水印.在本文中,您将学习如何使用 Java 为 Word 文档添加水印.文章将分别演示如何将文字和图片水印插入到Word文档 ...

  4. Java操作Word文档添加水印(文字/图片)

    水印是一种常用于各种文档的声明.防伪手段,一般可设置文字水印或者加载图片作为水印.以下内容将分享通过Java编程给Word文档添加水印效果的方法. 使用工具:Free Spire.Doc for Ja ...

  5. JAVA不使用POI给Word文档添加水印

    程序员在开发项目时,经常需要给一些图片.文件添加水印,但往往代码编写复杂,只能是先将文件上传再调用Graphics类才能实现这一功能.但是最无奈的是这个类只能给图片添加水印,而无法通过程序给Word文 ...

  6. java生成图章到word_JAVA不使用POI给Word文档添加水印

    程序员在开发项目时,经常需要给一些图片.文件添加水印,但往往代码编写复杂,只能是先将文件上传再调用Graphics类才能实现这一功能.但是最无奈的是这个类只能给图片添加水印,而无法通过程序给Word文 ...

  7. java poi 水印_JAVA不使用POI给Word文档添加水印

    程序员在开发项目时,经常需要给一些图片.文件添加水印,但往往代码编写复杂,只能是先将文件上传再调用Graphics类才能实现这一功能.但是最无奈的是这个类只能给图片添加水印,而无法通过程序给Word文 ...

  8. java 给word加水印,Java 实现在线给word 文档添加水印

    1:描述 在线编辑文档后需要添加专属水印.防止文档被盗用. 2:方案 用 pageoffice 提供的 添加水印的方法 3:核心代码 (1)后台方法添加文字水印 doc.getWaterMark(). ...

  9. php上传word文档添加水印

    服务器 : centos7 安装jdk 1. cd /usr/local/ 2. mkdir java 3. chmod -R 777 java/ 4. 下载jdk-linux-x64.tar.gz上 ...

最新文章

  1. mysql常用命令汇总
  2. 如何改进yolov3_揭秘YOLOv3鲜为人知的关键细节
  3. 8、HTML <table>标签(表格)
  4. linux sublime3 插件安装插件,手动安装sublimeText3插件
  5. 【ArcGIS风暴】ArcGIS点云抽稀(稀疏化LAS点)详解案例教程
  6. php把表单转为json保存,javascript – 使用jquery将表单数据保存到本地json文件中
  7. 检查电脑是否被安装木马三个小命令
  8. Qt工作笔记-跑马灯效果
  9. 针织erp_编程源于我们长期的针织工作
  10. JavaWeb框架之Struts2 ---- 系列学习
  11. FlashFXP 连接成功无法显示目录
  12. html水晶按钮图片,css 如何实现一个水晶按钮的效果呢?
  13. SpringBoot 实现AOP的简单测试demo
  14. Python手把手实现远程控制桌面
  15. 理解为什么女孩子都希望进国企了
  16. 《细说PHP》第二版--读书笔记
  17. 单位根检验、协整检验和格兰杰因果…
  18. 通过Hook API调用打造进程监控程序
  19. 硬件科普系列之硬盘——前言与准备知识篇
  20. 西游记下界为妖的神仙坐骑

热门文章

  1. win10打开凭据管理器提示0x800706BA
  2. ColorMatrix 矩阵效果,即美图秀秀图片滤镜效果的思路
  3. matlab根据y标注x,知道y的值,怎么标注出对应x值所对应曲线的坐标啊;matlab
  4. FEC【筷云早报】 2020年7月29日星期三
  5. 微信小程序基础学习(2)- 模板与配置:WXML 模板语法、WXSS 模板样式、全局配置、页面配置、网络数据请求
  6. 基于聚类算法的图像分割技术
  7. Nginx反向代理与负载均衡应用实践(二)
  8. 回忆录——一份曾经面试“网易AI产品经理”的作品
  9. STM32学习心得十九:电容触摸按键实验及相关代码解读
  10. Virtual Box 报错,无法为虚拟电脑xxxx创建一个新任务