DevExpress发布PowerPoint Presentation API库,支持跨平台与 PDF 导出

DevExpress专注于为 .NET、JavaScript、VCL 等多种平台提供高性能 UI 控件、报表工具、数据可视化组件及开发框架,产品覆盖桌面、Web、移动及跨平台应用开发领域。凭借稳定的性能、丰富的功能与优质的技术支持,DevExpress 的解决方案已广泛应用于金融、制造、医疗、能源、政府及教育等行业,帮助开发者更高效地构建现代化应用程序。

DevExpress官方宣布全新 .NET PowerPoint Presentation API 库的 Community Tech Preview(CTP)版现已发布(需使用 v25.1.4 及以上版本),该库旨在帮助您在 .NET 应用中创建、读取、编辑、转换、合并、拆分以及打印 Microsoft PowerPoint 文件。

在本文中,我将介绍该 CTP 版的关键功能,分享产品架构的见解,并演示如何通过代码构建一个演示文稿管理应用程序。

注意:DevExpress Presentation API 库目前为 Community Technology Preview(CTP)版本。

获取DevExpress v25.1正式版下载

Presentation API概览
跨平台PowerPoint文件处理

DevExpress Presentation API 构建于 .NET 之上,开箱即用地支持广泛的平台与操作系统。无论您在开发传统桌面应用、Web 后端,还是跨平台解决方案,都可以无缝集成 PowerPoint 文件处理能力,无需依赖 Microsoft Office 或 PowerPoint 的安装环境。

支持的框架、操作系统和环境包括:

  • NET 8/9, .NET Framework 4.6.2+
  • Windows, Linux, macOS
  • Azure, AWS, Docker
支持的文件格式与文档元素

当前版本(v25.1.x)的 PowerPoint Presentation API 库支持导入与保存 PPTX 格式演示文稿文件,同时支持将文件打印或导出为 PDF。

该库提供了一整套 API 和设置,帮助您以编程方式创建/管理演示文稿元素------包括:

  • 幻灯片、幻灯片布局、母版
  • 幻灯片备注、备注母版
  • 形状、连接器、文本框、图片
  • 形状文本、段落、占位符
  • 项目符号和编号列表
  • 演示文稿页眉与页脚
  • 内置与自定义文档属性
  • 演示文稿视图属性

代码示例 --- 将演示文稿转换为 PDF

cs 复制代码
using DevExpress.Docs.Presentation;
//...
// Load a presentation
Presentation presentation = new Presentation(File.ReadAllBytes("mypresentation.pptx"));
// Export to PDF
presentation.ExportToPdf(new FileStream(@"D:\exported-document.pdf", FileMode.Create));
核心功能 --- 程序化管理演示文稿

DevExpress Presentation API 让您能够以编程方式生成及组织演示内容,支持以下使用场景:

  • 添加、复制、重新排序、调整大小、隐藏或删除幻灯片
  • 创建、自定义及应用不同的幻灯片布局
  • 访问并更新幻灯片母版内容
  • 合并多个演示文稿,或将幻灯片从一个文档复制到另一个文档
  • 将一个演示文稿按幻灯片拆分成多个演示文稿
  • 提取或指定特定段落、形状、幻灯片、演讲者备注或整个演示文稿的文本
  • 格式化文本、段落、形状及幻灯片背景
  • 管理演示文稿元数据

代码示例 --- 合并两个演示文稿

cs 复制代码
using DevExpress.Docs.Presentation;
//...
// Load presentations
Presentation presentation1 = new Presentation(File.ReadAllBytes("presentation1.pptx"));
Presentation presentation2 = new Presentation(File.ReadAllBytes("presentation2.pptx"));
// Merge presentation slides
foreach (Slide slide in presentation2.Slides) {
presentation1.Slides.Add(slide);
}
// Save the merged document to the PPTX file
FileStream outputStream = new FileStream(@"D:\merged_presentation.pptx", FileMode.Create);
presentation.SaveDocument(outputStream);
面向对象的文档模型

与依赖接口型文档模型的其他 PowerPoint 处理库不同,DevExpress Presentation API 库采用了具体的面向对象模型设计。这种架构选择旨在提供更清晰、更灵活且更便于开发者使用的体验。

使用DevExpress Presentation API库,您可以直接使用直观的类------Slide、Shape、TextParagraph等。在向表示中添加新元素之前,可以初始化文档对象并配置所有必要的设置,这为基于流的文档生成提供了一种自然和结构化的方法。

此外,您可以跨多个幻灯片和演示文稿重用文档元素和配置设置。例如,您可以将相同的幻灯片添加到多个演示文稿中,或者对多个幻灯片或形状应用相同的格式(如下面的示例所示)。

cs 复制代码
// Create and apply the custom background to multiple slides in two different presentations
SolidFill fill = new SolidFill(Color.LightCyan);
CustomSlideBackground background = new CustomSlideBackground(fill);
presentation1.Slides[0].Background = background;
presentation1.Slides[1].Background = background;
presentation2.Slides[0].Background = background;

该方法允许您用更少的代码对表示文档进行更改,同时如果需要唯一的实例来防止意外更改,可以创建文档元素和设置单独的复制。

开始使用 PowerPoint Presentation API

若要在项目中使用 DevExpress Presentation API,请按以下步骤操作:

  1. Nuget.org 安装 DevExpress.Docs.Presentation NuGet 包(版本 v25.1.4 及以上):

dotnet add package DevExpress.Docs.Presentation --version 25.1.4

(也可通过 DevExpress 本地或个人 NuGet 源安装 Office File API组件)

  1. 在项目文件中添加 DevExpress.Docs.Presentation 命名空间。

  2. 创建 Presentation 实例:

  • 使用无参数构造函数来新建一个带有一个空白幻灯片的演示文稿;
  • 使用字节数组或流参数的构造函数来加载已有的 PPTX 文件。
  1. 使用 API 构建或修改演示文稿(生成内容、设置格式、更新元数据、重新组织幻灯片等)。

  2. 生成输出:

  • 使用 Presentation.SaveDocument 保存为 PPTX;
  • 使用 Presentation.ExportToPdf 生成 PDF;
  • 使用 Presentation.Print 打印文档。

代码示例 --- 从零创建新演示文稿

cs 复制代码
using DevExpress.Docs.Presentation;
//...
// Create a presentation with a single empty slide
Presentation presentation = new Presentation();

// Configure Slide Master
SlideMaster slideMaster = presentation.SlideMasters[0];
slideMaster.Background = new CustomSlideBackground(new SolidFill(Color.FromArgb(194, 228, 249)));

// Add a new slide with content
presentation.Slides.Clear();
Slide slide1 = new Slide(slideMaster.Layouts.Get(SlideLayoutType.Title));
foreach (Shape shape in slide1.Shapes) {
if (shape.PlaceholderSettings.Type is PlaceholderType.CenteredTitle) {
shape.TextArea = new TextArea("Daily Testing Status Report");
}
if (shape.PlaceholderSettings.Type is PlaceholderType.Subtitle) {
shape.TextArea = new TextArea($"{DateTime.Now: dddd, MMMM d, yyyy}");
}
}
presentation.Slides.Add(slide1);

// Save Presentation to PPTX
FileStream outputStream = new FileStream(@"D:\mypresentation.pptx", FileMode.Create);
presentation.SaveDocument(outputStream);

更多DevExpress线上公开课、中文教程资讯请上中文网获取

相关推荐
Yasin Chen2 天前
Unity UI坐标说明
ui·unity
阿幸软件杂货间3 天前
Office转PDF转换器v1.0.py
开发语言·pdf·c#
reembarkation3 天前
使用pdfjs-dist 预览pdf,并添加文本层的实现
前端·javascript·pdf
reembarkation3 天前
vue-pdf 实现blob数据的预览
javascript·vue.js·pdf
眠りたいです3 天前
基于脚手架微服务的视频点播系统-数据管理与网络通信部分的预备工作
c++·qt·ui·微服务·云原生·架构·媒体
Light603 天前
领码方案|Linux 下 PLT → PDF 转换服务超级完整版:异步、权限、进度(一气呵成)
linux·spring boot·pdf·gpcl6/ghostpcl·s3/oss·权限与审计·异步与进度
伟贤AI之路3 天前
【分享】中小学教材课本 PDF 资源获取指南
人工智能·pdf
东风西巷3 天前
PDFgear:免费全能的PDF处理工具
前端·pdf·软件需求
油炸自行车4 天前
【Qt】编写Qt自定义Ui控件步骤
开发语言·c++·qt·ui·自定义ui控件·qt4 自定义ui控件
Sunny_yiyi4 天前
Java根据模版导出PDF文件
java·开发语言·pdf