在播放PPT幻灯片的过程中,经常需要进行上下翻页或者跳到某一个指定页面,这篇文章将介绍如何使用C#将一张PPT幻灯片通过超链接连接到指定幻灯片(上一页、下一页、首页、尾页),实现翻页效果。
本文使用的组件是Spire.Presentation,在使用下面的代码前,需要:
1. 下载Spire.Presentation,并从安装文件夹下引用Spire.Presentation.dll到工程
2. 添加命名空间:
using System.Drawing;
using Spire.Presentation;
实现代码:
//加载PPT文档
Presentation ppt = new Presentation();
ppt.LoadFromFile("Input1.pptx");
//获取第二张幻灯片
ISlide slide = ppt.Slides[1];
//添加第一张图片
RectangleF rect = new RectangleF(50,400, 30, 30);
IEmbedImage image1 =slide.Shapes.AppendEmbedImage(ShapeType.Rectangle,@"首页.png", rect);
//给图片添加超链接,指向首页
ClickHyperlink firstPage = new ClickHyperlink(ppt.Slides[0]);
image1.Click = firstPage;
//添加第二张图片
rect = new RectangleF(50, 480, 30, 30);
IEmbedImage image2 =slide.Shapes.AppendEmbedImage(ShapeType.Rectangle,@"尾页.png", rect);
//给图片添加超链接,指向尾页
ClickHyperlink lastPage = new ClickHyperlink(ppt.Slides[ppt.Slides.Count- 1]);
image2.Click = lastPage;
//添加第三张图片
rect = new RectangleF(10, 440, 30, 30);
IEmbedImage image3 =slide.Shapes.AppendEmbedImage(ShapeType.Rectangle,@"左翻页.png", rect);
//给图片添加超链接,指向上一页
ClickHyperlink pageUp = new ClickHyperlink(ppt.Slides[slide.SlideNumber- 2]); //注意ppt.Slides[index]的index从0开始,而slide.SlideNumber从1开始。此处第二张幻灯片的index为1,SlideNumber为2,它的前一页的index应为0,因此需要将slideNumber减2。
image3.Click = pageUp;
//添加第四张图片
rect = new RectangleF(90, 440, 30, 30);
IEmbedImage image4 =slide.Shapes.AppendEmbedImage(ShapeType.Rectangle,@"右翻页.png", rect);
//给图片添加超链接,指向下一页
ClickHyperlink pageDown = new ClickHyperlink(ppt.Slides[slide.SlideNumber]);
image4.Click = pageDown;
//保存
ppt.SaveToFile("Output.pptx",FileFormat.Pptx2013);
生成效果如下图,在播放时点击相应的箭头图片就可以跳到指定幻灯片: