当前位置:网站首页>C#/VB.NET 添加多行多列图片水印到Word文档
C#/VB.NET 添加多行多列图片水印到Word文档
2022-08-02 10:27:00 【51CTO】
在Word里面添加水印时,常见的情况是仅支持对整个页面添加一个水印效果;对于需要将水印铺满整个页面的效果则可以参考本文中的方法。本文介绍一种比较灵活的方式实现添加多行多列(平铺)图片水印到Word文档。下面是详细方法及步骤。
环境配置
引入Word API-Free Spire.Doc for .NET( Spire.Doc.dll)
1. 通过 NuGet引入dll(2种方法)的方法
(1)可以在Visual Studio中打开“解决方案资源管理器”,鼠标右键点击“引用”,“管理NuGet包”,然后搜索“Free Spire.Doc”,点击“安装”。等待程序安装完成。
(2)将以下内容复制到PM控制台安装:
2. 手动添加dll引用的方法
可通过手动 下载包到本地,然后解压,找到BIN文件夹下的Spire.Doc.dll。然后在Visual Studio中打开“解决方案资源管理器”,鼠标右键点击“引用”,“添加引用”,将本地路径BIN文件夹下的dll文件添加引用至程序。
添加多行多列图片水印
实现多行多列图片水印效果,即在页眉处添加图片,并通过多次复制图片来模拟将水印铺满整个页面的效果,根据横向复制或者纵向复制的不同图片数量,可任意调整水印图片在页面中的分布效果。以下,是本次实现图片水印的主要代码步骤:
- 创建Document类的对象,并通过Document.LoadFromFile(string fileName)方法加载Word文档。
- for循环文档中的所有Section,并通过Document.Sections[int Index]属性获取页面中的节。
- 使用HeadersFooters.Header属性获取页眉,并通过HeaderFooter.AddParagraph()方法添加段落到页眉。
- 创建DocPicture类的对象,并调用DocPicture.LoadImage(string imgFile)方法加载水印图片,以及通过TextWrappingStyle枚举值设置图片环绕方式。
- 通过for循环以DocPicture.Clone()方法多次复制图片,并通过DocPicture.VerticalPosition和DocPicture.HorizontalPosition属性设置图片位置排列。
- 调用Paragraph.ChildObjects.Add(IDocumentObject entity)方法添加图片到页眉段落。
- 最后,通过Document.SaveToFile(string fileName, FileFormat fileFormat)方法保存文档都指定路径。
C#
VB.NET

—END—
边栏推荐
- LayaBox---TypeScript---模块解析
- Oracle超全SQL,细节狂魔
- Hello, my new name is "Bronze Lock/Tongsuo"
- 3D激光slam:LeGO-LOAM---地面点提取方法及代码分析
- You Only Hypothesize Once: 用旋转等变描述子估计变换做点云配准(已开源)
- Rear tube implements breadcrumb function
- 3年测试在职,月薪还不足2w,最近被裁员,用亲身经历给大家提个醒...
- R language ggplot2 visualization: based on the fill parameter and shape parameter in the aes function, custom draw a grouped line chart and add data points (scatter points), use the legend.position fu
- mysql清除binlog日志文件
- One Summer of Open Source | How to Quickly Integrate Log Modules in GO Language Framework
猜你喜欢

games202:三,实时环境光照IBL + PRT

软件测试H模型

为什么要使用BGP?

从测试入门到测试架构师,这10年,他是这样让自己成才的

你好,我的新名字叫“铜锁/Tongsuo”

MySql tens of millions of paging optimization, fast insertion method of tens of millions of data

【面向校招】Golang面试题合集

Hello, my new name is "Bronze Lock/Tongsuo"

读博一年后对机器学习工程的思考

FPGA手撕代码——CRC校验码的多种Verilog实现方式 (2021乐鑫科技数字IC提前批代码编程)
随机推荐
第十七章 Excel操作
软件测试X模型
TimerTask(addin timer语音)
LayaBox---TypeScript---装饰器
只问耕耘,不问收获,其实收获却在耕耘中
开源一夏 | GO语言框架中如何快速集成日志模块
Event 对象,你很了解吗?
4年手工测试被应届生取代了,用血与泪的教训给xdm一个忠告,该学自动化了...
MySql tens of millions of paging optimization, fast insertion method of tens of millions of data
Oracle根据时间查询
详细总结SoC、DSP、MCU、GPU和FPGA等基础概念
使用较广泛的安全测试工具有哪些?
Rust 从入门到精通03-helloworld
yolov7 innovation point
LayaBox---TypeScript---Namespaces and modules
Hongxing, donate another million
armv7与armv8的区别(v8和w12的区别)
LayaBox---TypeScript---命名空间和模块
周杰伦新歌发布,爬取《Mojito》MV弹幕,看看粉丝们都说的些啥!
LayaBox---TypeScript---模块