C# 处理PPT水印(三)—— 在PPT中添加多行(平铺)文本水印效果

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

程序环境

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

 

 

其中,Spire.Presentation.dll程序集,需下载安装至本地(也能够经过Nuget下载),这里使用的免费版ide

  • .NET Framework 4.8

 

详细代码

【C#】spa

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

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

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

 

其余关于C#操做PPT水印的方法可参考如下相关文章:htm

 

(本文完)blog

转载请注明出处!图片

相关文章
相关标签/搜索