C#實現給Word每一頁設置不同圖片水印

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.Doc
Imports Spire.Doc.Documents
Imports Spire.Doc.Fields

Namespace 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 Class
End Namespace

如圖,每一頁均可顯示不同的圖片水印效果:

以上就是C#實現給Word每一頁設置不同圖片水印的詳細內容,更多關於C# Word設置圖片水印的資料請關註WalkonNet其它相關文章!

推薦閱讀: