一两年前的代码了,三个版本都在实际中运用过。
/// WORD文件加水印
/// </summary>
/// <param name="srcDocName">源WORD文件名</param>
/// <param name="SaveDocName">加水印后文件名</param>
/// <param name="ModelPicName">水印的图片文件</param>
/// <param name="top">离顶部距离</param>
/// <param name="left">离左边距离</param>
/// <returns>返回失败的错误信息1.返回空错误信息表示成功,2.返回非空,即为相应错误信息</returns>
public static string WordWaterMark(string srcDocName,string SaveDocName,string ModelPicName,float top,float left)
{
object Nothing = System.Reflection.Missing.Value;
object readOnly = false;
object isVisible = true;
object filename =srcDocName;
object docname = SaveDocName;
//新建一个word应用
Word.Application WordApp = new Word.ApplicationClass();
//打开word对象
Word.Document WordDoc=null;
try
{
WordDoc = WordApp.Documents.Open(ref filename,ref Nothing, ref readOnly,ref Nothing,
ref Nothing, ref Nothing, ref Nothing,ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing);
WordDoc.PageSetup.DifferentFirstPageHeaderFooter=-1;//设置首页不同
WordDoc.ActiveWindow.View.Type = Word.WdViewType.wdOutlineView;
WordDoc.ActiveWindow.View.SeekView = Word.WdSeekView.wdSeekPrimaryHeader;
WordDoc.ActiveWindow.ActivePane.Selection.InsertAfter("");
WordDoc.Application.ActiveWindow.Selection.Range.Select();
WordDoc.Application.ActiveWindow.ActivePane.View.SeekView = WdSeekView.wdSeekFirstPageHeader;//第一页开始插入.wdSeekCurrentPageHeader;
WordDoc.Application.Selection.HeaderFooter.Shapes.AddPicture(ModelPicName, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing).Select(ref Nothing);
WordDoc.Application.Selection.ShapeRange.LockAspectRatio = Office.MsoTriState.msoTrue;
WordDoc.Application.Selection.ShapeRange.Height = 40f;
WordDoc.Application.Selection.ShapeRange.Width = 180f;
//WordDoc.Application.Selection.ShapeRange.Left = Convert.ToSingle(WdShapePosition.wdShapeRight);//居中
//WordDoc.Application.Selection.ShapeRange.Top = Convert.ToSingle(WdShapePosition.wdShapeTop);//居中
WordDoc.Application.Selection.ShapeRange.Left = left;
WordDoc.Application.Selection.ShapeRange.Top = top;
WordDoc.Application.Selection.ShapeRange.WrapFormat.AllowOverlap = 0;
WordDoc.Application.Selection.ShapeRange.WrapFormat.Side = WdWrapSideType.wdWrapBoth;
WordDoc.Application.Selection.ShapeRange.WrapFormat.Type = WdWrapType.wdWrapNone; //
WordDoc.Application.Selection.ShapeRange.ZOrder(Office.MsoZOrderCmd.msoSendBehindText);//文本底下
WordDoc.Application.Selection.ShapeRange.RelativeHorizontalPosition = WdRelativeHorizontalPosition.wdRelativeHorizontalPositionPage;//相对于页面
WordDoc.Application.Selection.ShapeRange.RelativeVerticalPosition = WdRelativeVerticalPosition.wdRelativeVerticalPositionPage;
//WordDoc.Application.Selection.ClearFormatting();
WordDoc.Application.ActiveWindow.ActivePane.View.SeekView = WdSeekView.wdSeekMainDocument;
//文件保存
WordDoc.SaveAs(ref docname, ref Nothing, ref Nothing, ref Nothing, ref Nothing,
ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing);
ErrorString="";
}
catch(Exception ex)
{
ErrorString=ex.Message.Trim();
}
finally
{
if (WordDoc!= null)
{
WordDoc.Close(ref Nothing, ref Nothing, ref Nothing);
}
WordApp.Quit(ref Nothing, ref Nothing, ref Nothing);
GC.Collect();
}
//}
return ErrorString;
}
分享到:
相关推荐
本文将深入探讨在dotNET环境下利用Word控件进行开发的相关知识点。 首先,.NET Framework提供了Microsoft.Office.Interop.Word命名空间,这是一个用于与Word应用程序进行COM互操作的接口。通过这个命名空间,我们...
本软件是一个VS编译工具,是目前体积最小的VS编译器,支持c#、vb.net,支持winform和webform语言虽不能完全替代Visual studio,不过在没有Visual studio时,应急用下,还是不错的,此为dotNet1.1环境。 ------------...
这个"DotNet图片水印源码"提供了一个简单的类库,它包含了一些基础但实用的图片处理功能,如图片剪切、缩放以及添加水印。接下来,我们将详细探讨这些功能及其在实际开发中的应用。 首先,图片剪切是图像处理中的...
### .NET Core 指南知识点详述 ...以上是对《dotnet 手册》中关键知识点的详细总结,涵盖了 .NET Core 的各个方面,从安装到部署,再到具体的开发实践和工具使用。这对于初学者来说是一份非常全面且实用的指南。
.Net Core 3.1 项目Docker 容器化必须的依赖镜像 同时附上百度网盘下载地址 链接:https://pan.baidu.com/s/1K4GZJ_MzG_n6wAsKl4DFEQ 提取码:b30i
运行“ dotnet build ” dotnetClean :运行“ dotnet clean ” dotnetListPackage :运行“ dotnet list package ” dotnetNuGetDelete :运行“ dotnet nuget delete ” dotnetNuGetPush :运行“ dotnet nuget ...
aspnet8.0 的运行时基础镜像
【标题】:“cr-code-dotnet-401d3:dotnet-401d3”指的是一个关于ASP.NET Core高级软件开发的学习资源或项目,其中“401d3”可能代表课程编号或者版本号。 【描述】:“cr-code-dotnet-401d3 dotnet-401d3:ASP.NET...
学习教程:DotNet 编程规范 本文档旨在提供一种统一的编程规范,以提高编程效率、代码质量和可维护性。 DotNet 编程规范版本历史时间人员备注第一章 概述 编程规范是经验丰富的程序员通过总结和反思而养成的信条和...
本软件是一个VS编译工具,是目前体积最小的VS编译器,支持c#、vb.net,支持winform和webform语言虽不能完全替代Visual studio,不过在没有Visual studio时,应急用下,还是不错的,此为dotNet1.1环境。 ------------...
.NET 6 是最新的稳定版本,文档列出了其新增功能和重大更改,同时也回顾了之前的版本如 .NET 5、.NET Core 3.x 的变化。这有助于开发者了解升级路径和新功能的利用。 **工具和诊断** .NET SDK 包含一组命令行工具,...
本软件是一个VS编译工具,是目前体积最小的VS编译器,支持c#、vb.net,支持winform和webform语言虽不能完全替代Visual studio,不过在没有Visual studio时,应急用下,还是不错的,此为dotNet2.0环境。 ------------...
例如,`.docx`文件解压后,可以看到`word/document.xml`存储了文档的主体内容,`word/styles.xml`存储了样式信息等。 在解析WPS创建的文档时,可能会遇到的问题包括但不限于: 1. **非标准元素或属性**:WPS可能...
本软件是一个VS编译工具,是目前体积最小的VS编译器,支持c#、vb.net,支持winform和webform语言虽不能完全替代Visual studio,不过在没有Visual studio时,应急用下,还是不错的,此为dotNet1.1环境。 ------------...
mcr.microsoft.com/dotnet/sdk:3.1
mcr.microsoft.com/dotnet/sdk:8.0
mcr.microsoft.com/dotnet/aspnet:8.0
在Word文档中,图片通常被存储为独立的图像文件,并在文档中引用。OpenXML结构中,这些图片位于`<w:drawing>`元素内,使用`<wp:docPr>`元素来定义图片属性,而具体的图像数据则包含在`.xml`或`.emf`文件中,这些文件...
这个压缩包文件"dotnet OpenXML 图片特效的 BiLevel 黑白特效修改图片颜色.rar"显然是一个关于如何使用OpenXML库在Word文档中实现图片的BiLevel黑白特效的教程。BiLevel特效是一种二值化处理,将图片转化为只有黑色...
标题中的“dotnetcore_test:测试解决方案”表明这是一个与.NET Core相关的测试项目,可能是为了验证.NET Core应用程序的正确性或性能。.NET Core是微软推出的一个开源、跨平台的开发框架,用于构建服务器端和云应用...