C# 在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

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

 

 

(本文完)

转载请注明出处!

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值