首页 > 知识问答文章正文

C# 在PPT中添加多行(平铺)水印效果

知识问答 2022-02-14 14:38:23 admin

在PPT幻灯片中,可通过添加形状的方式,来实现类似水印的效果,可添加单一文本水印效果,即幻灯片中只有一个文本水印;也可以添加多行(平铺)文本水印效果,即幻灯片中以一定方式平铺排列多个文本水印效果。本文主要以C#程序代码为例介绍第二种水印添加方法,另附VB.NET代码供参考。

程序环境

l  需引入以下程序集文件,如图:

其中,Spire.Presentation.dll程序集,需下载安装至本地(也可以通过Nuget下载)。

|.NET Framework 4.8

 

详细代码

【C#】

using Spire.Presentation;

using Spire.Presentation.Drawing;

using System;

using System.Drawing;

using System.Windows.Forms;

 

namespace TextWatermark2

{

    class Program

    {

        static void Main(string[] args)

        {

            //加载PPT文档

            Presentation ppt = new Presentation();

            ppt.LoadFromFile("test.pptx");

 

            //获取需要添加的水印的幻灯片(第一张幻灯片)

            ISlide slide = ppt.Slides[0];

 

            //创建水印文本

            Font font = new Font("宋体", 20);

            String watermarkText = "内部资料";

            SizeF size = TextRenderer.MeasureText(watermarkText, font);

 

            //指定水印添加的起始坐标位置

            float x = 50;

            float y = 80;

            for (int i = 0; i < 4; i++)

            {

                for (int j = 0; j < 4; j++)

                {

                    //绘制文本,设置文本格式

                    RectangleF rect = new RectangleF(x, y, size.Width, size.Height);

                    IAutoShape shape = slide.Shapes.AppendShape(Spire.Presentation.ShapeType.Rectangle, rect);

                    shape.Fill.FillType = FillFormatType.None;

                    shape.ShapeStyle.LineColor.Color = Color.White;

                    shape.Rotation = -45;

                    shape.Locking.SelectionProtection = true;

                    shape.Line.FillType = FillFormatType.None;

                    shape.TextFrame.Text = watermarkText;

                    TextRange textRange = shape.TextFrame.TextRange;

                    textRange.Fill.FillType = FillFormatType.Solid;

                    textRange.Fill.SolidColor.Color = Color.FromArgb(120, Color.HotPink);

                    textRange.EastAsianFont = new TextFont(font.Name);

                    textRange.FontHeight = font.Size;

                    x += (100 + size.Width);

                }

                x = 30;

                y += (100 + size.Height);

            }

 

            //保存文档

            ppt.SaveToFile("TextWatermark.pptx", FileFormat.Pptx2013);

            System.Diagnostics.Process.Start("TextWatermark.pptx");

        }

    }

}

【VB.NET】

Imports Spire.Presentation

Imports Spire.Presentation.Drawing

Imports System.Drawing

Imports System.Windows.Forms

 

Namespace TextWatermark2

         Class Program

                   Private Shared Sub Main(args As String())

                            '加载PPT文档

                            Dim ppt As New Presentation()

                            ppt.LoadFromFile("test.pptx")

 

                            '获取需要添加的水印的幻灯片(第一张幻灯片)

                            Dim slide As ISlide = ppt.Slides(0)

 

                            '创建水印文本

                            Dim font As New Font("宋体", 20)

                            Dim watermarkText As [String] = "内部资料"

                            Dim size As SizeF = TextRenderer.MeasureText(watermarkText, font)

 

                            '指定水印添加的起始坐标位置

                            Dim x As Single = 50

                            Dim y As Single = 80

                            For i As Integer = 0 To 3

                                     For j As Integer = 0 To 3

                                               '绘制文本,设置文本格式

                                               Dim rect As New RectangleF(x, y, size.Width, size.Height)

                                             Dim shape As IAutoShape = slide.Shapes.AppendShape(Spire.Presentation.ShapeType.Rectangle, rect)

                                               shape.Fill.FillType = FillFormatType.None

                                               shape.ShapeStyle.LineColor.Color = Color.White

                                               shape.Rotation = -45

                                               shape.Locking.SelectionProtection = True

                                               shape.Line.FillType = FillFormatType.None

                                               shape.TextFrame.Text = watermarkText

                                               Dim textRange As TextRange = shape.TextFrame.TextRange

                                               textRange.Fill.FillType = FillFormatType.Solid

                                               textRange.Fill.SolidColor.Color = Color.FromArgb(120, Color.HotPink)

                                               textRange.EastAsianFont = New TextFont(font.Name)

                                               textRange.FontHeight = font.Size

                                               x += (100 + size.Width)

                                     Next

                                     x = 30

                                     y += (100 + size.Height)

                            Next

 

                            '保存文档

                            ppt.SaveToFile("TextWatermark.pptx", FileFormat.Pptx2013)

                            System.Diagnostics.Process.Start("TextWatermark.pptx")

                   End Sub

         End Class

End Namespace

 

完成代码后,执行程序,生成结果文档。在结果文档中可查看水印添加效果,如下图:


注:以上代码中的文件路径为VS项目文件夹路径,如本次测试环境中为C:\Users\Administrator\Documents\Visual Studio 2013\Projects\InsertWatermark_PPT\TextWatermark2\bin\Debug,这里的文件路径可自行定义。


(本文完)

转载请注明出处!!

标签:

发表评论

评论列表

可盼网Copyright @ 2011-2024 All Rights Reserved. |版权所有 备案号: 豫ICP备2022006457号-8