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


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

    程序环境

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

    其中,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

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

    其他关于C#操作PPT水印的方法可参考以下相关文章:

    (本文完)

    转载请注明出处!

  • 相关阅读:
    MXCMS List标签说明
    c# 测量运行时间的方法
    简单的定时任务
    jQuery实现的简单文字提示效果模拟title
    ECSHOP设置默认配送方式和默认支付方式
    asp 里sql防止注入的方法
    asp.net上传图片并生成水印与缩略图的代码
    定时备份并清除系统日志的shell代码
    sql server 2005 万能分页存储过程
    01.部署NopCommerce时遇到的问题
  • 原文地址:https://www.cnblogs.com/Yesi/p/14463461.html
Copyright © 2020-2023  润新知