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

轉載請註明出處!圖片

相關文章
相關標籤/搜索