千家信息网

C#怎么实现给Word每一页设置不同图片水印

发表于:2025-01-18 作者:千家信息网编辑
千家信息网最后更新 2025年01月18日,本篇内容介绍了"C#怎么实现给Word每一页设置不同图片水印"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有
千家信息网最后更新 2025年01月18日C#怎么实现给Word每一页设置不同图片水印

本篇内容介绍了"C#怎么实现给Word每一页设置不同图片水印"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

方法思路

在给Word每一页添加水印前,首先需要在Word文档每一页正文的最后一个字符后面插入"连续"分节符,然后在每一节的页眉段落里添加水印图片,并设置图片的坐标位置、对齐方式、衬于文字下方等。最后保存文档。

dll引入

方法1

在程序中引入Spire.Doc.dll文件;将 Free Spire.Doc for .NET 下载到本地,解压,找到BIN文件夹下的Spire.Doc.dll。然后在Visual Studio中打开"解决方案资源管理器",鼠标右键点击"引用","添加引用",将本地路径BIN文件夹下的dll文件添加引用至程序。

方法2

通过 NuGet 安装。可通过以下2种方法安装:

1. 可以在Visual Studio中打开"解决方案资源管理器",鼠标右键点击"引用","管理NuGet包",然后搜索"Free Spire.Doc",点击"安装"。等待程序安装完成。

2. 将以下内容复制到PM控制台安装。

Install-Package FreeSpire.Doc -Version 10.2.0

代码示例

给每页添加图片水印时,可参考如下步骤:

  • 创建Document类的对象,并通过LoadFromFile(string fileName)方法加载Word文档。

  • 通过Document.Sections[]属性获取指定节。

  • 通过HeadersFooters.Header属性获取页眉,HeaderFooter.AddParagraph()方法添加段落到页眉。

  • 通过Paragraph.AppendPicture(string imgFile)方法添加图片到段落,DocPicture.VerticalPosition属性设置水印图片位置,DocPicture.HorizontalAlignment属性设置图片对齐方式。

  • 最后,通过Document.SaveToFile(string fileName, FileFormat fileFormat)方法保存文档。

不同页面中设置不一样的图片水印效果,只需要获取该页面对应的节,然后参考上述用到的方法来添加即可。

C#

using Spire.Doc;using Spire.Doc.Documents;using Spire.Doc.Fields;namespace ImageWatermark2{    class Program    {        static void Main(string[] args)        {            //加载Word测试文档            Document doc = new Document();            doc.LoadFromFile("test.docx");            //获取文档第一节            Section section1 = doc.Sections[0];            //定义水印图片的纵向坐标位置            float y = section1.PageSetup.PageSize.Height/3;            //添加图片水印1            HeaderFooter header1 = section1.HeadersFooters.Header;//获取页眉            header1.Paragraphs.Clear();//删除原有页眉格式的段落            Paragraph para1 = header1.AddParagraph();//重新添加段落            DocPicture pic1 = para1.AppendPicture("logo1.png");//添加图片            pic1.TextWrappingStyle = TextWrappingStyle.Behind;//图片置于文字下方            pic1.VerticalPosition = y;            pic1.HorizontalAlignment = ShapeHorizontalAlignment.Center;//设置图片对齐方式            //同理设置第二节页眉中的图片水印2            Section section2 = doc.Sections[1];            HeaderFooter header2 = section2.HeadersFooters.Header;            header2.Paragraphs.Clear();            Paragraph para2 = header2.AddParagraph();            DocPicture pic2 = para2.AppendPicture("logo2.png");            pic2.TextWrappingStyle = TextWrappingStyle.Behind;            pic2.VerticalPosition = y;            pic2.HorizontalAlignment = ShapeHorizontalAlignment.Center;            //同理设置第三节中的页眉中的图片水印3            Section section3 = doc.Sections[2];            HeaderFooter header3 = section3.HeadersFooters.Header;            header3.Paragraphs.Clear();            Paragraph para3 = header3.AddParagraph();            DocPicture pic3 = para3.AppendPicture("logo3.png");            pic3.TextWrappingStyle = TextWrappingStyle.Behind;            pic3.VerticalPosition = y;            pic3.HorizontalAlignment = ShapeHorizontalAlignment.Center;            //保存文档            doc.SaveToFile("DifferentImageWatermark.docx", FileFormat.Docx2013);            System.Diagnostics.Process.Start("DifferentImageWatermark.docx");        }    }}

vb.net

Imports Spire.DocImports Spire.Doc.DocumentsImports Spire.Doc.FieldsNamespace ImageWatermark2    Class Program        Private Shared Sub Main(args As String())            '加载Word测试文档            Dim doc As New Document()            doc.LoadFromFile("test.docx")            '获取文档第一节            Dim section1 As Section = doc.Sections(0)            '定义水印图片的纵向坐标位置            Dim y As Single = section1.PageSetup.PageSize.Height / 3            '添加图片水印1            Dim header1 As HeaderFooter = section1.HeadersFooters.Header            '获取页眉            header1.Paragraphs.Clear()            '删除原有页眉格式的段落            Dim para1 As Paragraph = header1.AddParagraph()            '重新添加段落            Dim pic1 As DocPicture = para1.AppendPicture("logo1.png")            '添加图片            pic1.TextWrappingStyle = TextWrappingStyle.Behind            '图片置于文字下方            pic1.VerticalPosition = y            pic1.HorizontalAlignment = ShapeHorizontalAlignment.Center            '设置图片对齐方式            '同理设置第二节页眉中的图片水印2            Dim section2 As Section = doc.Sections(1)            Dim header2 As HeaderFooter = section2.HeadersFooters.Header            header2.Paragraphs.Clear()            Dim para2 As Paragraph = header2.AddParagraph()            Dim pic2 As DocPicture = para2.AppendPicture("logo2.png")            pic2.TextWrappingStyle = TextWrappingStyle.Behind            pic2.VerticalPosition = y            pic2.HorizontalAlignment = ShapeHorizontalAlignment.Center            '同理设置第三节中的页眉中的图片水印3            Dim section3 As Section = doc.Sections(2)            Dim header3 As HeaderFooter = section3.HeadersFooters.Header            header3.Paragraphs.Clear()            Dim para3 As Paragraph = header3.AddParagraph()            Dim pic3 As DocPicture = para3.AppendPicture("logo3.png")            pic3.TextWrappingStyle = TextWrappingStyle.Behind            pic3.VerticalPosition = y            pic3.HorizontalAlignment = ShapeHorizontalAlignment.Center            '保存文档            doc.SaveToFile("DifferentImageWatermark.docx", FileFormat.Docx2013)            System.Diagnostics.Process.Start("DifferentImageWatermark.docx")        End Sub    End ClassEnd Namespace

如图,每一页均可显示不同的图片水印效果:

"C#怎么实现给Word每一页设置不同图片水印"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

0