使用Aspose.Slides对PPT进行操作

这篇具有很好参考价值的文章主要介绍了使用Aspose.Slides对PPT进行操作。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

开发.NET项目常用的和office相关的库有开源组件Apose.Slides和Spire.Presentation,以及微软自带的Microsoft.office.interop.PowerPoint组件。

微软自带的Microsoft.office.interop.PowerPoint组件虽然免费,但是需要在服务器端安装PowerPoint,且需要配置DCOM组件权限,并且原生方法有限,导入附件、图片等功能收到限制,经过权衡,放弃使用微软自带的组件。

Apose.Slides和Spire.Presentation这两个都是商业软件,试用版和免费版的只有能生成前10页,还带有水印。Free Spire.Presentation可以没有能超过十页,否则需要购买商业付费版。

但是网上存在Apose.Slides的破解版本,可以完美解锁大部分常用功能,最终采用Apose.Slides.net 17.9作为最终的开发组件,经过测试满足此次开发需求。

Aspose.Slides下载地址

https://download.csdn.net/download/weixin_35770067/86630578

开发环境
Visual Studio 2019

Microsoft Visual Studio是微软公司的开发工具包系列产品。VS是一个基本完整的开发工具集,它包括了整个软件生命周期中所需要的大部分工具,如UML工具、代码管控工具、集成开发环境(IDE)等等。所写的目标代码适用于微软支持的所有平台。Visual Studio包含基于组件的开发工具(如Visual C#、Visual J#、Visual Basic和Visual C++),以及许多用于简化基于小组的解决方案的设计、开发和部署的其他技术。

这里我们主要使用的是Visual Studio的Visual C#开发工具。

Microsoft开发组件

Apose.Slides.dll
开发过程中,需要引用上述类库,用于创建、操作、保存PPT等操作。

官方文档

https://docs.aspose.com/slides/net/open-presentation/文章来源地址https://www.toymoban.com/news/detail-494093.html

Apose.Slides.dll 主要功能函数
创建PPT
// Instantiate a Presentation object that represents a presentation fileusing (Presentation presentation = new Presentation()){
    // Get the first slide    ISlide slide = presentation.Slides[0];
    // Add an autoshape of type line    slide.Shapes.AddAutoShape(ShapeType.Line, 50, 150, 300, 0);
    presentation.Save("NewPresentation_out.pptx", SaveFormat.Pptx);}
保存PPT
// Instantiate a Presentation object that represents a PPT file
Presentation presentation= new Presentation();
//...do some work here...// Save your presentation to a filepresentation.Save("Saved_out.pptx", 
Aspose.Slides.Export.SaveFormat.Pptx);
增加PPT
// Instantiate Presentation class that represents a presentation file
using (Presentation pres = new Presentation("CloneWithinSamePresentationToEnd.pptx")){
// Clone the desired slide to the end of the collection of slides in the same presentation    
ISlideCollection slds = pres.Slides;
slds.AddClone(pres.Slides[0]);
    // Write the modified presentation to disk    
    pres.Save("Aspose_CloneWithinSamePresentationToEnd_out.pptx", SaveFormat.Pptx);
}
删除PPT
// Instantiate a Presentation object that represents a presentation file
using (Presentation pres = new Presentation("RemoveSlideUsingReference.pptx")){
// Accessing a slide using its index in the slides collection    
    ISlide slide = pres.Slides[0];
// Removing a slide using its reference    
    pres.Slides.Remove(slide);
//Writing the presentation file    
    pres.Save("modified_out.pptx", Aspose.Slides.Export.SaveFormat.Pptx);
    }
修改PPT文本
using(Presentation pres = new Presentation("text.pptx")){
   foreach (ISlide slide in pres.Slides)
   {
       foreach (IShape shape in slide.Shapes)
       {
           if (shape is IAutoShape autoShape) //Checks if shape supports text frame (IAutoShape).            {
              foreach (IParagraph paragraph in autoShape.TextFrame.Paragraphs) //Iterates through paragraphs in text frame               {
                   foreach (IPortion portion in paragraph.Portions) //Iterates through each portion in paragraph                   {
                       portion.Text = portion.Text.Replace("years", "months"); //Changes text                       portion.PortionFormat.FontBold = NullableBool.True; //Changes formatting                   }
               }
           }
       }
   }
   //Saves the modified presentation   
   pres.Save("text-changed.pptx", SaveFormat.Pptx);}
增加图片导入
using (Presentation pres = new Presentation()){
    ISlide slide = pres.Slides[0];
    IPPImage image = pres.Images.AddImage(File.ReadAllBytes("image.png"));
    slide.Shapes.AddPictureFrame(ShapeType.Rectangle, 10, 10, 100, 100, image);
    pres.Save("pres.pptx", SaveFormat.Pptx);}
增加视频导入
// Instantiate Presentation class that represents the PPTX
using (Presentation pres = new Presentation()){
// Get the first slide    
ISlide sld = pres.Slides[0];
// Embedd vide inside presentation    
IVideo vid = pres.Videos.AddVideo(new FileStream("Wildlife.mp4", FileMode.Open));
// Add Video Frame    
IVideoFrame vf = sld.Shapes.AddVideoFrame(50, 150, 300, 350, vid);
// Set video to Video Frame    
vf.EmbeddedVideo = vid;
// Set Play Mode and Volume of the Video    
vf.PlayMode = VideoPlayModePreset.Auto;
    vf.Volume = AudioVolumeMode.Loud;
// Write the PPTX file to disk    
pres.Save("VideoFrame_out.pptx", SaveFormat.Pptx);}
增肌OLE文件导入
using (Presentation pres = new Presentation()){
  ISlide slide = pres.Slides[0];
  
  byte[] htmlBytes = File.ReadAllBytes("embedOle.html");
  IOleEmbeddedDataInfo dataInfoHtml = new OleEmbeddedDataInfo(htmlBytes, "html");
  IOleObjectFrame oleFrameHtml = slide.Shapes.AddOleObjectFrame(150, 120, 50, 50, dataInfoHtml);
  oleFrameHtml.IsObjectIcon = true;
  byte[] zipBytes = File.ReadAllBytes("embedOle.zip");
  IOleEmbeddedDataInfo dataInfoZip = new OleEmbeddedDataInfo(zipBytes, "zip");
  IOleObjectFrame oleFrameZip = slide.Shapes.AddOleObjectFrame(150, 220, 50, 50, dataInfoZip);
  oleFrameZip.IsObjectIcon = true;
  pres.Save("embeddedOle.pptx", SaveFormat.Pptx);}
增加文本框
// Instantiates PresentationExusing (Presentation pres = new Presentation()){
// Gets the first slide in the presentation    
ISlide sld = pres.Slides[0];
// Adds an AutoShape with type set as Rectangle    
IAutoShape ashp = sld.Shapes.AddAutoShape(ShapeType.Rectangle, 150, 75, 150, 50);
// Adds TextFrame to the Rectangle    
ashp.AddTextFrame(" ");
// Accesses the text frame    
ITextFrame txtFrame = ashp.TextFrame;
// Creates the Paragraph object for text frame    
IParagraph para = txtFrame.Paragraphs[0];
// Creates a Portion object for the paragraph    
IPortion portion = para.Portions[0];
// Sets the text    
portion.Text = "Aspose TextBox";
// Saves the presentation to disk   
 pres.Save("TextBox_out.pptx", Aspose.Slides.Export.SaveFormat.Pptx);}
参考文献
  • https://docs.aspose.com/slides/net/create-presentation/

到了这里,关于使用Aspose.Slides对PPT进行操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【工具插件类教学】Unity通过Aspose读取并显示打开PDF,PPT,Excel,Word

    目录 一、获取Aspose支持.Net的DLL 二、导入Unity的Plugin文件夹 三、分别编写四种文件的读取显示

    2024年02月02日
    浏览(60)
  • Office如何通过VSTO进行PPT插件开发?

      VSTO(Visual Studio Tools for Office )是VBA的替代,是一套用于创建自定义Office应用程序的Visual Studio工具包。VSTO可以用Visual Basic 或者Visual C#扩展Office应用程序(例如Word、Excel、PPT)。本文通过VSTO进行PPT插件开发总结,并进行记录。    (1)安装Visual Studio   在百度等浏览器搜

    2024年02月17日
    浏览(42)
  • aspose-words、itextpdf完美解决java将word、excel、ppt、图片转换为pdf文件

    我是 傲骄鹿先生 ,沉淀、学习、分享、成长。 如果你觉得文章内容还可以的话,希望不吝您的「一键三连」,文章里面有不足的地方希望各位在评论区补充疑惑、见解以及面试中遇到的奇葩问法 面对日常开发过程中,将各种文件转换为pdf文件的问题,总是让人头疼,这次终

    2024年02月03日
    浏览(66)
  • 使用 GPT4 和 ChatGPT 开发应用:前言到第三章

    原文:Developing Apps with GPT-4 and ChatGPT 译者:飞龙 协议:CC BY-NC-SA 4.0 在发布仅仅五天后,ChatGPT 就吸引了惊人的一百万用户,这在科技行业及其他领域引起了轰动。作为一个副作用,OpenAI API 用于人工智能文本生成的接口突然曝光,尽管它已经可用了三年。ChatGPT 界面展示了这

    2024年01月20日
    浏览(73)
  • 使用Spring框架进行Web项目开发(初级)

    目录 前言 1. 为什么常规的Spring框架不适合Web项目呢? 2. 如何在Spring框架中创建容器? 3. Spring框架开发Web项目的步骤 3.1 创建maven项目 3.2 添加相应的依赖 3.3 在webapp目录下的web.xml中注册监听器 3.4 在webapp文件夹下的web.xml中配置Servlet控制器 3.5 自定义控制器  总结 我们在初步

    2024年01月19日
    浏览(47)
  • 如何使用 Lightly 进行 Python GUI 项目开发

    GUI 即图形用户界面(Graphical User Interface)的缩写,是一种使用图形交互的界面系统。这种系统为软件提供图标、菜单等视觉交互性强的部件,让用户能通过点击、拖动、下拉等方式操作电脑中的软件和应用程序。GUI 所展示的物体可以传递各式各样的信息,同时也会随着用户

    2024年02月05日
    浏览(44)
  • Qt项目开发经验:在Linux平台下使用Qt进行开发

    Qt项目开发经验:在Linux平台下使用Qt进行开发 如今,Qt已成为跨平台应用程序开发中的一大宠儿。在Linux平台下,Qt的应用也是越来越广泛了。今天,我将和大家分享一些我在Linux平台下使用Qt进行开发的经验。 首先,在Linux平台下安装Qt并不复杂。我们可以通过apt-get工具来安

    2024年02月08日
    浏览(65)
  • 【微信小程序】使用vscode进行小程序项目的开发

    如果我们不想写wxss,想写less、scss,但是less、scss以前都是编译成css的,这时候我们可以进行在vscode环境配置的设置 下载插件 想利用本身已经熟悉的prettier功能、vscode环境配置的设置⬇ 虽然可以利用vscode进行小程序代码的开发,但是“微信开发者工具”是脱离不了的,因为需

    2024年02月05日
    浏览(47)
  • 基础前端使用web3 进行区块链项目开发

    这篇文章不会些区块链的机制算法等一切,只是对前端开发者,如何快速上手进行区块链项目开发做一个简单的引导。 阅读本文之前,需要了解一些简单的区块链知识,能回答以下四个问题就可以阅读本文了。 1、区块链是什么? 2、区块链节点是什么? 3、钱包是什么? 4、

    2024年02月01日
    浏览(56)
  • UniApp项目中 使用微信小程序原生语言 进行开发

    wxcomponents 下放的是微信小程序原生代码写的组件。我进行了封装 在你下uniApp 项目的根目录创建一个 wxcomponents 名字千万不要错 京东、支付宝灯参考下面图片 官方文档也有介绍 然后在你需要引入原生功能的页面里面引入你的组件(我这里提前已经放过来了。在上面图可看到

    2024年02月04日
    浏览(75)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包