使用Free Spire.Presentation生成PowerPoint文件

前言

之前有写过一篇使用Free Spire.XLS生成图表的文章,朋友圈内反应还不错,都希望我能继续写下去,把类似的产品都介绍一下。正好我前段时间把Spire的产品都过了一遍,趁着还算熟悉,写点文章分享一下自己的心得。这次介绍的是使用Free Spire.Presentation生成一个简单的PowerPoint文件。

准备

首先从官方网站上下载Free Spire.Presentation组件,安装后有一个Sample Center,类似功能展示的一个程序,有实例代码和相关dll文件,可编译运行,非常方便;当然,如果你只是想下载dll文件,可以使用nuget获取,命令如下:

PM> Install-Package FreeSpire.Presentation

步骤

1. 创建一个PowerPoint文档,默认会生成一张新的幻灯片。

Presentation ppt = new Presentation();

ISlide slide = ppt.Slides[0];

2. 使用图片来填充幻灯片的背景。

//需要设置Type为Custom, 否则无效

slide.SlideBackground.Type = BackgroundType.Custom;

slide.SlideBackground.Fill.FillType = FillFormatType.Picture;

slide.SlideBackground.Fill.PictureFill.Picture.EmbedImage = ppt.Images.Append(Image.FromFile("bg.jpg"));

slide.SlideBackground.Fill.PictureFill.FillType = PictureFillType.Stretch;

3. 接下来填充一段文本,并设置相关的样式。这里要说明一下,如果不进行样式的设置,生成文本的颜色、字体、大小等会很奇怪。

RectangleF textRect = new RectangleF(295, 26, 129, 30);

IAutoShape shape = slide.Shapes.AppendShape(ShapeType.Rectangle, textRect);

shape.Fill.FillType = FillFormatType.None;

shape.Line.FillType = FillFormatType.None;

TextParagraph tp = new TextParagraph();

TextRange tr = new TextRange("National Report");

tr.Format.LatinFont = new TextFont("Arial Narrow");

tr.Format.FontHeight = 18f;

tr.Fill.FillType = FillFormatType.Solid;

tr.Fill.SolidColor.Color = Color.Black;

tp.TextRanges.Append(tr);

4. 插入一个表格并填充数据,然后设置表格的样式。我使用的数组在一个二维数组里,正好对应表格的行列。由于代码过长,这里只贴关键部分:

ITable table = ppt.Slides[0].Shapes.AppendTable(ppt.SlideSize.Size.Width / 2 - 275, 90, widths, heights);

//填充数据

for (int i = 0; i < 13; i++)

{

for (int j = 0; j < 5; j++)

{

table[j, i].TextFrame.Text = dataStr[i, j];

//设置字体

table[j, i].TextFrame.Paragraphs[0].TextRanges[0].LatinFont = new TextFont("Arial Narrow");

//居中显示文本

table[j, i].TextFrame.Paragraphs[0].Alignment = TextAlignmentType.Center;

}

}

//使用内建的表格样式

table.StylePreset = TableStylePreset.MediumStyle4Accent1;

5. 设置页脚的内容。

ppt.SetFooterText("Free Spire.Presentation");

//默认不可见,下同

ppt.SetFooterVisible(true);

ppt.SetSlideNoVisible(true);

ppt.SetDateTimeVisible(true);

6. 保存到本地并打开。

ppt.SaveToFile("Result.pptx", FileFormat.Pptx2010);

System.Diagnostics.Process.Start("Result.pptx");

生成的PowerPoint文件如下图:

总结

网上操作PowerPoint的组件不多,Free Spire.Presentation的优势在于免费易用,功能相较Commercial版本略有不足,而且做多只能处理10张幻灯片,不过对于普通使用者来说已经足够了。

转载于:https://www.cnblogs.com/Yesi/p/4530288.html

使用Free Spire.Presentation生成PowerPoint文件相关推荐

  1. java使用Spire.Doc生成的word文件去除水印(头部的警告信息)

    1.需求 通过word模板和库表中数据动态生成word文档. word操作工具本身自带word转xml(直接另存为xml即可). 但是需求明确了,只能用word模板,也不允许用户手动从word转xml ...

  2. Aspose.Slides使用教程:使用 C++ 访问或修改 PowerPoint 文件的属性

    PowerPoint 文件包含提供有关演示文稿的附加信息的元数据或文档属性.其中包括演示文稿的标题.日期.作者等信息.在本文中,将学习 如何使用 C++ 访问和修改 PowerPoint 演示文稿中的 ...

  3. Python批量导入图片生成PowerPoint 2007+文件

    说明:本文是"Python批量爬取微信公众号文章中的图片"的后续文章,用来把从公众号批量抓取的图片还原为PowerPoint 2007文件. 使用方法:安装扩展库python-pp ...

  4. python批量导入图片_Python批量导入图片生成PowerPoint 2007+文件

    原标题:Python批量导入图片生成PowerPoint 2007+文件 说明:本文是"Python批量爬取微信公众号文章中的图片"的后续文章,用来把从公众号批量抓取的图片还原为P ...

  5. Spire.Presentation使用教程:在Java中设置PowerPoint图像的透明度

    Spire.Presentation for Java专业的 PowerPoint API,它允许开发人员在 Java 应用程序中创建.读取.写入.转换和保存 PowerPoint 文档,而无需安装 ...

  6. C# 将PowerPoint文件转换成PDF文件

    PowerPoint的优势在于对演示文档的操作上,而用PPT查看资料,反而会很麻烦.这时候,把PPT转换成PDF格式保存,再浏览,不失为一个好办法.在日常编程中和开发软件时,我们也有这样的需要.本文旨 ...

  7. java ppt控件_Java版PPT操作控件Spire.Presentation v2.12.2新版来袭!支持获取具有超链接的目标幻灯片...

    Spire.Presentation for Java是专业的 PowerPoint API,它允许开发人员在 Java 应用程序中创建.读取.写入.转换和保存 PowerPoint 文档.作为一款独 ...

  8. Java Spire.Presentation 之PPT文本图片内容提取

    目录结构 前言 文档准备 引入Maven依赖 代码块 提取结果验证 ppt_demo.ppt 提取结果 pptx_demo.pptx 提取结果 前言 应公司需求,需实现以下功能 PPT文本内容的替换: ...

  9. 使用PptxGenJS框架自定义模板生成PPT文件(1)

    前序 因为业务要求需要使用自定义模板来生成PPT,但是查阅了大量的资料的发现目前后台的开发PPT框架不支持公司的业务: poi.去看了apachePOI官方文档可以发现并没有生成图片(chart)的方 ...

最新文章

  1. 对于学习方式的一些思考
  2. 对三层架构的简单改进
  3. starter_您是否尝试过MicroProfile Starter?
  4. 线性表----链式表
  5. python提取hbase数据_详解python操作hbase数据的方法介绍
  6. Git的基本概念/常用命令及实例
  7. suse系统_据传 SUSE 将进行 IPO,高达 60 亿美元 | 新闻拍一拍
  8. GridView批量删除页面最后N条数据时自动翻到上一页问题
  9. HDOJ2013_蟠桃记
  10. JavaScript高级程序设计(4)
  11. demo:用matlab app designer做一个简易app
  12. lise什么意思中文翻译_list中文是什么意思?
  13. 第十四、十五周新总结
  14. 使用融云 IM SDK 实现 H5 直播聊天
  15. Android Gradle Composing builds 管理三方依赖
  16. Android 通过代码执行shell命令获取电量百分比
  17. 两种常用碱性磷酸酶化学发光底物APS-5/AMPPD(CAS:193884-53-6/122341-56-4)
  18. 什么是HTML? HTML基础
  19. 伯克利分校研究生计算机排名及申请,加州大学伯克利分校排名及研究生申请条件...
  20. 模仿项目 生成随机的测验试卷文件

热门文章

  1. idea 注释模板_常用的模板函数
  2. 在java中蓝色_Java基础
  3. 基于数据库数据增量同步_基于 Flink SQL CDC 的实时数据同步方案
  4. python 表白程序代码_python抖音表白程序源代码
  5. 微博抽奖贴为什么到时间了不开奖_热搜第一!微博闹剧,锦鲤“信小呆”被这样处罚...
  6. countanddown java_Java多线程之CountDownLatch
  7. char* 去除后面几个字符_【算法打卡】去除重复字母
  8. linux mariadb 图形化,linux 初学者 - MariaDB 图形管理篇
  9. php简单验证码实例,php结合GD库简单实现验证码的示例代码
  10. ce修改面板属性_脑叶公司员工属性CE修改教程