C#給Word不同頁面設置不同背景

給Word文檔設置背景時,通常隻能針對整篇文檔設置統一的背景,如果需要對某些頁面單獨設置背景,則需要通過另外的方式來實現。本文通過C# 程序代碼演示如何來實現。並附VB.NET代碼作參考。

思路:通過在頁眉中添加形狀或者圖片,並將形狀或圖片平鋪(即設置形狀或圖片大小為頁面大小)到整個頁面。添加背景時,通過添加形狀並設置形狀顏色來設置成純色背景效果;通過添加圖片來實現圖片背景效果。

本次程序運行環境中包括:引入Spire.Doc.dll;.Net Framework 4.5.1

設置不同背景時,分以下2種情況:

1. 隻需設置首頁背景和其他頁面不同

1.1 設置純色背景

【C#】

using Spire.Doc;
using Spire.Doc.Documents;
using Spire.Doc.Fields;
using System.Drawing;

namespace DifferentBackground1
{
 class Program
 {
 static void Main(string[] args)
 {
  //加載Word測試文檔
  Document doc = new Document();
  doc.LoadFromFile("測試.docx");

  //獲取第一節
  Section section = doc.Sections[0];

  //設置首頁頁眉頁腳不同
  section.PageSetup.DifferentFirstPageHeaderFooter = true;

  //在首頁頁眉添加形狀
  HeaderFooter firstpageheader = section.HeadersFooters.FirstPageFooter;//獲取首頁頁眉
  firstpageheader.Paragraphs.Clear();//清除頁眉默認的段落格式(因默認頁眉格式中包含有一條橫線)
  Paragraph firstpara = firstpageheader.AddParagraph();//重新添加段落
  float width = section.PageSetup.PageSize.Width;//獲取頁面寬度、高度
  float height = section.PageSetup.PageSize.Height;
  ShapeObject shape = firstpara.AppendShape(width, height, ShapeType.Rectangle);//添加形狀
  shape.BehindText = true;//設置形狀襯於文字下方
  shape.HorizontalAlignment = ShapeHorizontalAlignment.Center;//設置對齊方式,鋪滿頁面
  shape.VerticalOrigin = VerticalOrigin.TopMarginArea;
  shape.FillColor = Color.LightBlue;//形狀顏色


  //在其他頁面的頁眉中添加形狀
  HeaderFooter otherheader = section.HeadersFooters.Header;
  otherheader.Paragraphs.Clear();
  Paragraph otherpara = otherheader.AddParagraph();
  ShapeObject shape1 = otherpara.AppendShape(width, height, ShapeType.Rectangle);
  shape1.BehindText = true;
  shape1.HorizontalAlignment = ShapeHorizontalAlignment.Center;
  shape1.VerticalOrigin = VerticalOrigin.TopMarginArea;
  shape1.FillColor = Color.Pink;


  //保存文檔
  doc.SaveToFile("ColorBackground1.docx", FileFormat.Docx2013);
  System.Diagnostics.Process.Start("ColorBackground1.docx");
 }
 }
}

【VB.NET】

Imports Spire.Doc
Imports Spire.Doc.Documents
Imports Spire.Doc.Fields
Imports System.Drawing

Namespace DifferentBackground1
 Class Program
 Private Shared Sub Main(args As String())
  '加載Word測試文檔
  Dim doc As New Document()
  doc.LoadFromFile("測試.docx")

  '獲取第一節
  Dim section As Section = doc.Sections(0)

  '設置首頁頁眉頁腳不同
  section.PageSetup.DifferentFirstPageHeaderFooter = True

  '在首頁頁眉添加形狀
  Dim firstpageheader As HeaderFooter = section.HeadersFooters.FirstPageFooter
  '獲取首頁頁眉
  firstpageheader.Paragraphs.Clear()
  '清除頁眉默認的段落格式(因默認頁眉格式中包含有一條橫線)
  Dim firstpara As Paragraph = firstpageheader.AddParagraph()
  '重新添加段落
  Dim width As Single = section.PageSetup.PageSize.Width
  '獲取頁面寬度、高度
  Dim height As Single = section.PageSetup.PageSize.Height
  Dim shape As ShapeObject = firstpara.AppendShape(width, height, ShapeType.Rectangle)
  '添加形狀
  shape.BehindText = True
  '設置形狀襯於文字下方
  shape.HorizontalAlignment = ShapeHorizontalAlignment.Center
  '設置對齊方式,鋪滿頁面
  shape.VerticalOrigin = VerticalOrigin.TopMarginArea
  shape.FillColor = Color.LightBlue
  '形狀顏色

  '在其他頁面的頁眉中添加形狀
  Dim otherheader As HeaderFooter = section.HeadersFooters.Header
  otherheader.Paragraphs.Clear()
  Dim otherpara As Paragraph = otherheader.AddParagraph()
  Dim shape1 As ShapeObject = otherpara.AppendShape(width, height, ShapeType.Rectangle)
  shape1.BehindText = True
  shape1.HorizontalAlignment = ShapeHorizontalAlignment.Center
  shape1.VerticalOrigin = VerticalOrigin.TopMarginArea
  shape1.FillColor = Color.Pink


  '保存文檔
  doc.SaveToFile("ColorBackground1.docx", FileFormat.Docx2013)
  System.Diagnostics.Process.Start("ColorBackground1.docx")
 End Sub
 End Class
End Namespace

1.2 設置圖片背景

【C#】

using Spire.Doc;
using Spire.Doc.Documents;
using Spire.Doc.Fields;

namespace DifferentBackground1
{
 class Program
 {
 static void Main(string[] args)
 {
  //加載Word測試文檔
  Document doc = new Document();
  doc.LoadFromFile("測試.docx");

  //獲取第一節
  Section section = doc.Sections[0];

  //設置首頁頁眉頁腳不同
  section.PageSetup.DifferentFirstPageHeaderFooter = true;

  HeaderFooter firstpageheader = section.HeadersFooters.FirstPageFooter;//獲取首頁頁眉
  firstpageheader.Paragraphs.Clear();//清除頁眉默認的段落格式(因默認頁眉格式中包含有一條橫線)
  Paragraph firstpara = firstpageheader.AddParagraph();//重新添加段落

  //獲取頁面寬度、高度
  float width = section.PageSetup.PageSize.Width;
  float height = section.PageSetup.PageSize.Height; 
  
  //添加圖片到首頁頁眉
  DocPicture pic0 = firstpara.AppendPicture("1.png");
  pic0.TextWrappingStyle = TextWrappingStyle.Behind;
  pic0.HorizontalAlignment = ShapeHorizontalAlignment.Center;
  pic0.VerticalOrigin = VerticalOrigin.TopMarginArea;
  pic0.Width = width;
  pic0.Height = height;


  //在其他頁面的頁眉中添加圖片
  HeaderFooter otherheader = section.HeadersFooters.Header;
  otherheader.Paragraphs.Clear();
  Paragraph otherpara = otherheader.AddParagraph();
  DocPicture pic1 = otherpara.AppendPicture("2.png");
  pic1.TextWrappingStyle = TextWrappingStyle.Behind;
  pic1.HorizontalAlignment = ShapeHorizontalAlignment.Center;
  pic1.VerticalOrigin = VerticalOrigin.TopMarginArea;
  pic1.Width = width;
  pic1.Height = height;


  //保存文檔
  doc.SaveToFile("ImageBackground1.docx", FileFormat.Docx2013);
  System.Diagnostics.Process.Start("ImageBackground1.docx");
 }
 }
}

【VB.NET】

Imports Spire.Doc
Imports Spire.Doc.Documents
Imports Spire.Doc.Fields

Namespace DifferentBackground1
 Class Program
 Private Shared Sub Main(args As String())
  '加載Word測試文檔
  Dim doc As New Document()
  doc.LoadFromFile("測試.docx")

  '獲取第一節
  Dim section As Section = doc.Sections(0)

  '設置首頁頁眉頁腳不同
  section.PageSetup.DifferentFirstPageHeaderFooter = True

  Dim firstpageheader As HeaderFooter = section.HeadersFooters.FirstPageFooter
  '獲取首頁頁眉
  firstpageheader.Paragraphs.Clear()
  '清除頁眉默認的段落格式(因默認頁眉格式中包含有一條橫線)
  Dim firstpara As Paragraph = firstpageheader.AddParagraph()
  '重新添加段落
  '獲取頁面寬度、高度
  Dim width As Single = section.PageSetup.PageSize.Width
  Dim height As Single = section.PageSetup.PageSize.Height

  '添加圖片到首頁頁眉
  Dim pic0 As DocPicture = firstpara.AppendPicture("1.png")
  pic0.TextWrappingStyle = TextWrappingStyle.Behind
  pic0.HorizontalAlignment = ShapeHorizontalAlignment.Center
  pic0.VerticalOrigin = VerticalOrigin.TopMarginArea
  pic0.Width = width
  pic0.Height = height


  '在其他頁面的頁眉中添加圖片
  Dim otherheader As HeaderFooter = section.HeadersFooters.Header
  otherheader.Paragraphs.Clear()
  Dim otherpara As Paragraph = otherheader.AddParagraph()
  Dim pic1 As DocPicture = otherpara.AppendPicture("2.png")
  pic1.TextWrappingStyle = TextWrappingStyle.Behind
  pic1.HorizontalAlignment = ShapeHorizontalAlignment.Center
  pic1.VerticalOrigin = VerticalOrigin.TopMarginArea
  pic1.Width = width
  pic1.Height = height


  '保存文檔
  doc.SaveToFile("ImageBackground1.docx", FileFormat.Docx2013)
  System.Diagnostics.Process.Start("ImageBackground1.docx")
 End Sub
 End Class
End Namespace

2. 設置指定多個頁面背景不同

註:給多個頁面設置不同背景時,需要通過獲取不同節的頁眉來設置,本次程序環境中所用源文檔已設置瞭多個節,如需手動設置分節,可參考代碼:

document.Sections[0].Paragraphs[0].InsertSectionBreak(SectionBreakType.NoBreak);

2.1 設置純色背景

【C#】

using Spire.Doc;
using Spire.Doc.Documents;
using Spire.Doc.Fields;
using System.Drawing;

namespace DifferentBackground2
{
 class Program
 {
 static void Main(string[] args)
 {
  //加載Word文檔
  Document doc = new Document();
  doc.LoadFromFile("測試.docx");

  //獲取第一節
  Section section1 = doc.Sections[0];

  //獲取頁面寬度、高度
  float width = section1.PageSetup.PageSize.Width;
  float height = section1.PageSetup.PageSize.Height;

  //添加圖片到頁眉
  HeaderFooter header1 = section1.HeadersFooters.Header;
  header1.Paragraphs.Clear();
  Paragraph para1 = header1.AddParagraph();
  ShapeObject shape1 = para1.AppendShape(width, height, ShapeType.Rectangle);//添加形狀
  shape1.BehindText = true;//設置形狀襯於文字下方
  shape1.HorizontalAlignment = ShapeHorizontalAlignment.Center;//設置對齊方式,鋪滿頁面
  shape1.VerticalOrigin = VerticalOrigin.TopMarginArea;
  shape1.FillColor = Color.LightSalmon;//形狀顏色

  //同理設置第二節頁眉中的形狀
  Section section2 = doc.Sections[1];
  HeaderFooter header2 = section2.HeadersFooters.Header;
  header2.Paragraphs.Clear();
  Paragraph para2 = header2.AddParagraph();
  ShapeObject shape2 = para2.AppendShape(width, height, ShapeType.Rectangle);//添加形狀
  shape2.BehindText = true;//設置形狀襯於文字下方
  shape2.HorizontalAlignment = ShapeHorizontalAlignment.Center;//設置對齊方式,鋪滿頁面
  shape2.VerticalOrigin = VerticalOrigin.TopMarginArea;
  shape2.FillColor = Color.Moccasin;//形狀顏色

  //同理設置第三節中的頁眉中的形狀
  Section section3 = doc.Sections[2];
  HeaderFooter header3 = section3.HeadersFooters.Header;
  header3.Paragraphs.Clear();
  Paragraph para3 = header3.AddParagraph();
  ShapeObject shape3 = para3.AppendShape(width, height, ShapeType.Rectangle);//添加形狀
  shape3.BehindText = true;//設置形狀襯於文字下方
  shape3.HorizontalAlignment = ShapeHorizontalAlignment.Center;//設置對齊方式,鋪滿頁面
  shape3.VerticalOrigin = VerticalOrigin.TopMarginArea;
  shape3.FillColor = Color.LawnGreen;//形狀顏色

  //保存文檔
  doc.SaveToFile("ColorBackground2.docx", FileFormat.Docx2013);
  System.Diagnostics.Process.Start("ColorBackground2.docx");
 }
 }
}

【VB.NET】

Imports Spire.Doc
Imports Spire.Doc.Documents
Imports Spire.Doc.Fields
Imports System.Drawing

Namespace DifferentBackground2
 Class Program
 Private Shared Sub Main(args As String())
  '加載Word文檔
  Dim doc As New Document()
  doc.LoadFromFile("測試.docx")

  '獲取第一節
  Dim section1 As Section = doc.Sections(0)

  '獲取頁面寬度、高度
  Dim width As Single = section1.PageSetup.PageSize.Width
  Dim height As Single = section1.PageSetup.PageSize.Height

  '添加圖片到頁眉
  Dim header1 As HeaderFooter = section1.HeadersFooters.Header
  header1.Paragraphs.Clear()
  Dim para1 As Paragraph = header1.AddParagraph()
  Dim shape1 As ShapeObject = para1.AppendShape(width, height, ShapeType.Rectangle)
  '添加形狀
  shape1.BehindText = True
  '設置形狀襯於文字下方
  shape1.HorizontalAlignment = ShapeHorizontalAlignment.Center
  '設置對齊方式,鋪滿頁面
  shape1.VerticalOrigin = VerticalOrigin.TopMarginArea
  shape1.FillColor = Color.LightSalmon
  '形狀顏色
  '同理設置第二節頁眉中的圖片
  Dim section2 As Section = doc.Sections(1)
  Dim header2 As HeaderFooter = section2.HeadersFooters.Header
  header2.Paragraphs.Clear()
  Dim para2 As Paragraph = header2.AddParagraph()
  Dim shape2 As ShapeObject = para2.AppendShape(width, height, ShapeType.Rectangle)
  '添加形狀
  shape2.BehindText = True
  '設置形狀襯於文字下方
  shape2.HorizontalAlignment = ShapeHorizontalAlignment.Center
  '設置對齊方式,鋪滿頁面
  shape2.VerticalOrigin = VerticalOrigin.TopMarginArea
  shape2.FillColor = Color.Moccasin
  '形狀顏色
  '同理設置第三節中的頁眉中的圖片
  Dim section3 As Section = doc.Sections(2)
  Dim header3 As HeaderFooter = section3.HeadersFooters.Header
  header3.Paragraphs.Clear()
  Dim para3 As Paragraph = header3.AddParagraph()
  Dim shape3 As ShapeObject = para3.AppendShape(width, height, ShapeType.Rectangle)
  '添加形狀
  shape3.BehindText = True
  '設置形狀襯於文字下方
  shape3.HorizontalAlignment = ShapeHorizontalAlignment.Center
  '設置對齊方式,鋪滿頁面
  shape3.VerticalOrigin = VerticalOrigin.TopMarginArea
  shape3.FillColor = Color.LawnGreen
  '形狀顏色
  '保存文檔
  doc.SaveToFile("ColorBackground2.docx", FileFormat.Docx2013)
  System.Diagnostics.Process.Start("ColorBackground2.docx")
 End Sub
 End Class
End Namespace

2.2 設置圖片背景

【C#】

using Spire.Doc;
using Spire.Doc.Documents;
using Spire.Doc.Fields;

namespace DifferentBackground2
{
 class Program
 {
 static void Main(string[] args)
 {
  //加載Word文檔
  Document doc = new Document();
  doc.LoadFromFile("測試.docx");

  //獲取第一節
  Section section1 = doc.Sections[0];
  //添加圖片到頁眉
  HeaderFooter header1 = section1.HeadersFooters.Header;
  header1.Paragraphs.Clear();
  Paragraph para1 = header1.AddParagraph();
  DocPicture pic1 = para1.AppendPicture("1.png");
  pic1.TextWrappingStyle = TextWrappingStyle.Behind;
  pic1.HorizontalAlignment = ShapeHorizontalAlignment.Center;
  pic1.VerticalOrigin = VerticalOrigin.TopMarginArea;
  float width = section1.PageSetup.PageSize.Width;
  float height = section1.PageSetup.PageSize.Height;
  pic1.Width = width;
  pic1.Height = height;

  //同理設置第二節頁眉中的圖片
  Section section2 = doc.Sections[1];
  HeaderFooter header2 = section2.HeadersFooters.Header;
  header2.Paragraphs.Clear();
  Paragraph para2 = header2.AddParagraph();
  DocPicture pic2 = para2.AppendPicture("2.png");
  pic2.TextWrappingStyle = TextWrappingStyle.Behind;
  pic2.HorizontalAlignment = ShapeHorizontalAlignment.Center;
  pic2.VerticalOrigin = VerticalOrigin.TopMarginArea; 
  pic2.Width = width;
  pic2.Height = height;

  //同理設置第三節中的頁眉中的圖片
  Section section3 = doc.Sections[2];
  HeaderFooter header3 = section3.HeadersFooters.Header;
  header3.Paragraphs.Clear();
  Paragraph para3 = header3.AddParagraph();
  DocPicture pic3 = para3.AppendPicture("3.png");
  pic3.TextWrappingStyle = TextWrappingStyle.Behind;
  pic3.HorizontalAlignment = ShapeHorizontalAlignment.Center;
  pic3.VerticalOrigin = VerticalOrigin.TopMarginArea;
  pic3.Width = width;
  pic3.Height = height;

  //保存文檔
  doc.SaveToFile("ImageBackground2.docx", FileFormat.Docx2013);
  System.Diagnostics.Process.Start("ImageBackground2.docx");
 }
 }
}

【VB.NET】

Imports Spire.Doc
Imports Spire.Doc.Documents
Imports Spire.Doc.Fields

Namespace DifferentBackground2
 Class Program
 Private Shared Sub Main(args As String())
  '加載Word文檔
  Dim doc As New Document()
  doc.LoadFromFile("測試.docx")

  '獲取第一節
  Dim section1 As Section = doc.Sections(0)
  '添加圖片到頁眉
  Dim header1 As HeaderFooter = section1.HeadersFooters.Header
  header1.Paragraphs.Clear()
  Dim para1 As Paragraph = header1.AddParagraph()
  Dim pic1 As DocPicture = para1.AppendPicture("1.png")
  pic1.TextWrappingStyle = TextWrappingStyle.Behind
  pic1.HorizontalAlignment = ShapeHorizontalAlignment.Center
  pic1.VerticalOrigin = VerticalOrigin.TopMarginArea
  Dim width As Single = section1.PageSetup.PageSize.Width
  Dim height As Single = section1.PageSetup.PageSize.Height
  pic1.Width = width
  pic1.Height = height

  '同理設置第二節頁眉中的圖片
  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("2.png")
  pic2.TextWrappingStyle = TextWrappingStyle.Behind
  pic2.HorizontalAlignment = ShapeHorizontalAlignment.Center
  pic2.VerticalOrigin = VerticalOrigin.TopMarginArea
  pic2.Width = width
  pic2.Height = height

  '同理設置第三節中的頁眉中的圖片
  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("3.png")
  pic3.TextWrappingStyle = TextWrappingStyle.Behind
  pic3.HorizontalAlignment = ShapeHorizontalAlignment.Center
  pic3.VerticalOrigin = VerticalOrigin.TopMarginArea
  pic3.Width = width
  pic3.Height = height

  '保存文檔
  doc.SaveToFile("ImageBackground2.docx", FileFormat.Docx2013)
  System.Diagnostics.Process.Start("ImageBackground2.docx")
 End Sub
 End Class
End Namespace

到此這篇關於C#給Word不同頁面設置不同背景的文章就介紹到這瞭,更多相關C#給Word設置背景內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: