创建新演示文稿
VSTO的开发目的是让开发人员构建可以在Microsoft Office内部运行的应用程序。VSTO基于COM,但它被封装在一个.NET对象中,以便能够在.NET应用程序中使用。VSTO需要.NET框架的支持以及Microsoft Office CLR基于的运行时。尽管可以使用它来制作Microsoft Office插件,但几乎不可能将其用作服务器端组件。它还有严重的部署问题。
Aspose.Slides for PHP via Java是一个可以用来操作Microsoft PowerPoint演示文稿的组件,就像VSTO一样,但它有几个优点:
- Aspose.Slides仅包含托管代码,不需要安装Microsoft Office运行时。
- 它可以作为客户端组件或服务器端组件使用。
- 部署很简单,因为Aspose.Slides包含在一个单独的jar文件中。
创建演示文稿
以下是两个代码示例,说明如何使用VSTO和Aspose.Slides for PHP via Java来实现相同的目标。第一个示例是VSTO;第二个示例使用Aspose.Slides。
VSTO示例
VSTO输出
//Note: PowerPoint is a namespace which has been defined above like this | |
//using PowerPoint = Microsoft.Office.Interop.PowerPoint; | |
//Create a presentation | |
PowerPoint.Presentation pres = Globals.ThisAddIn.Application | |
.Presentations.Add(Microsoft.Office.Core.MsoTriState.msoFalse); | |
//Get the title slide layout | |
PowerPoint.CustomLayout layout = pres.SlideMaster. | |
CustomLayouts[PowerPoint.PpSlideLayout.ppLayoutTitle]; | |
//Add a title slide. | |
PowerPoint.Slide slide = pres.Slides.AddSlide(1, layout); | |
//Set the title text | |
slide.Shapes.Title.TextFrame.TextRange.Text = "Slide Title Heading"; | |
//Set the sub title text | |
slide.Shapes[2].TextFrame.TextRange.Text = "Slide Title Sub-Heading"; | |
//Write the output to disk | |
pres.SaveAs("c:\\outVSTO.ppt", | |
PowerPoint.PpSaveAsFileType.ppSaveAsPresentation, | |
Microsoft.Office.Core.MsoTriState.msoFalse); | |
Aspose.Slides for PHP via Java示例
Aspose.Slides的输出
//Create a presentation | |
Presentation pres = new Presentation(); | |
//Add the title slide | |
ISlide slide = pres.getSlides().addEmptySlide(pres.getLayoutSlides().get_Item(0)); | |
//Set the title text | |
((IAutoShape)slide.getShapes().get_Item(0)).getTextFrame().setText("Slide Title Heading"); | |
//Set the sub title text | |
((IAutoShape)slide.getShapes().get_Item(1)).getTextFrame().setText("Slide Title Sub-Heading"); | |
//Write output to disk | |
pres.save("c:\\data\\outAsposeSlides.pptx",SaveFormat.Pptx); |