C# 給Word不一樣頁面設置不一樣背景

給Word文檔設置背景時,一般只能針對整篇文檔設置統一的背景,若是須要對某些頁面單獨設置背景,則須要經過另外的方式來實現。本文經過C# 程序代碼演示如何來實現。並附VB.NET代碼做參考。html

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

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

設置不一樣背景時,分如下2種狀況:測試

1. 只需設置首頁背景和其餘頁面不一樣

1.1 設置純色背景

【C#】spa

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】3d

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
View Code

 

1.2 設置圖片背景

【C#】code

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】orm

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
View Code

 

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

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

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

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
View Code

 

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
View Code
相關文章
相關標籤/搜索