为了账号安全,请及时绑定邮箱和手机立即绑定

C#给Word不同页面设置不同背景

标签:
C#

给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");

        }

    }

}

https://img1.sycdn.imooc.com//60136da40001d91005500698.jpg

【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");

        }

    }

}

https://img1.sycdn.imooc.com//60136e490001988005390696.jpg

【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");

        }

    }

}

https://img1.sycdn.imooc.com//60136e060001b83105280705.jpg


【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");

        }

    }

}

https://img1.sycdn.imooc.com//60136de900018a8505440703.jpg

【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






点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
JAVA开发工程师
手记
粉丝
9
获赞与收藏
48

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消