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
如圖,每一頁均可顯示不同的圖檔水印效果:
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5SO2UDOwEDOyUTMtYTMzYDN5MzMxIjMyAjMyAjMtATOwYDM38CXyAjMyAjMvwFM5AjNwczLcd2bsJ2Lc12bj5ycn9Gbi52YuIjMwIzZtl2Lc9CX6MHc0RHaiojIsJye.png)
—END—