在 Node.js 中创建 PowerPoint

Microsoft PowerPoint 应用程序(在 Windows、macOS 和其他平台上)允许您创建包含文本、图像、图表、动画和许多其他元素的演示文稿和幻灯片放映。

在您阅读完本文时,您将学习 如何在 Node.js 中创建 PowerPoint 并通过运行 node.js 代码向演示文稿添加各种内容。

获取 Node.js PowerPoint API

Aspose.Slides Node.js PowerPoint API

Aspose.Slides for Node.js via Java 是一个强大的 API,为开发人员和应用程序提供了创建、打开、转换和操作 PowerPoint 文档所需的一切,适用于 node.js 和 javascript 服务器端应用程序。

您可以通过运行以下命令从 NPM 安装 Aspose.Slides for Node.js via Java:

npm install aspose.slides.via.java

如果在安装过程中遇到任何问题,请参阅此 产品页面

备注

在 Node.js 中创建 PowerPoint PPT

  1. 创建 Presentation 类的实例。
  2. 通过 Presentation.save(String, SaveFormat) 方法保存对象。
// 实例化一个表示演示文稿文件的 Presentation 对象
var presentation = new aspose.slides.Presentation();

// 获取第一张幻灯片
var slide = presentation.getSlides().get_Item(0);

// 向幻灯片添加内容...

// 保存演示文稿
presentation.save("NewPresentation.pptx", aspose.slides.SaveFormat.Pptx);

在 Node.js 中打开 PowerPoint PPT

  1. 创建 Presentation 类的实例,并将要打开的 PowerPoint 的路径传递给类构造函数。
  2. 执行任务。您可以向幻灯片添加一些内容。您可以不做任何事情。
  3. 保存演示文稿。
// 实例化一个表示演示文稿文件的 Presentation 对象
var presentation = new aspose.slides.Presentation("presentation.pptx");

// 获取第一张幻灯片
var slide = presentation.getSlides().get_Item(0);

// 向幻灯片添加内容...

// 保存演示文稿
presentation.save("NewPresentation.pptx", aspose.slides.SaveFormat.Pptx);

在 Node.js 中向 PowerPoint PPTX 添加幻灯片

  1. 创建 Presentation 类的实例,并传递要添加幻灯片的 PowerPoint 的路径。
  2. 通过设置对 getSlides() 方法的引用来实例化 ISlideCollection 类。
  3. 通过 ISlideCollection 对象公开的 addEmptySlide(ILayoutSlide) 方法向演示文稿添加一个空幻灯片。
  4. 使用 Presentation.save(String, SaveFormat) 方法保存更新后的演示文稿。
// 实例化一个表示演示文稿文件的 Presentation 对象
var presentation = new aspose.slides.Presentation("presentation.pptx");

// 访问幻灯片集合
var slds = presentation.getSlides();

for (var i = 0; i < presentation.getLayoutSlides().size(); i++) {
	// 向幻灯片集合添加一个空幻灯片
	slds.addEmptySlide(presentation.getLayoutSlides().get_Item(i));
}

// 保存演示文稿
presentation.save("NewPresentation.pptx", aspose.slides.SaveFormat.Pptx);

向 PowerPoint PPT 添加文本

  1. 创建 Presentation 类的实例,并传递要添加文本的 PowerPoint 的路径。
  2. 通过索引获取要添加文本的幻灯片的引用。
  3. 通过 addAutoShape() 方法添加一个矩形,并在 IAutoShape 对象中获取其引用。
  4. 向包含文本的形状添加 TextFrame
  5. 设置文本的首选属性,如填充颜色、填充类型等。
  6. 通过 save(String, SaveFormat) 方法保存更新后的演示文稿。
var colorBlack = java.getStaticFieldValue("java.awt.Color", "BLACK");
var colorWhite = java.getStaticFieldValue("java.awt.Color", "WHITE");

// 实例化一个表示演示文稿文件的 Presentation 对象
var presentation = new aspose.slides.Presentation("presentation.pptx");

// 获取第一张幻灯片
var sld = presentation.getSlides().get_Item(0);

// 添加一个矩形类型的自动形状
var ashp = sld.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 150, 75, 150, 50);

// 向矩形添加 ITextFrame
ashp.addTextFrame("Hello World");

// 将文本颜色更改为黑色(默认是白色)
ashp.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0).getPortionFormat().getFillFormat()
		.setFillType(java.newByte(aspose.slides.FillType.Solid));
ashp.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0).getPortionFormat().getFillFormat()
		.getSolidFillColor().setColor(colorBlack);

// 将矩形的线条颜色更改为白色
ashp.getShapeStyle().getLineColor().setColor(colorWhite);

// 移除形状中的任何填充格式
ashp.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill));

// 保存演示文稿
presentation.save("NewPresentation.pptx", aspose.slides.SaveFormat.Pptx);

在 PowerPoint PPT 中创建图表

  1. 创建 Presentation 类的实例,并传递要创建图表的 PowerPoint 的路径。
  2. 通过索引获取要创建图表的幻灯片的引用。
  3. 通过 addChart 方法添加您首选的图表。
  4. 添加图表标题。
  5. 访问图表数据工作表。
  6. 清除所有默认系列和类别。
  7. 添加新的系列和类别。
  8. 为图表系列添加新的图表数据。
  9. 为图表系列设置填充颜色。
  10. 添加图表系列标签。
  11. 将演示文稿保存为 PPT 文件。
var colorGreen = java.getStaticFieldValue("java.awt.Color", "GREEN");
var colorRed = java.getStaticFieldValue("java.awt.Color", "RED");

// 实例化一个表示 PPTX 文件的演示文稿类
var pres = new aspose.slides.Presentation();

// 访问第一张幻灯片
var sld = pres.getSlides().get_Item(0);

// 添加一个带有默认数据的图表
var chart = sld.getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 0, 0, 500, 500);

// 设置图表标题
chart.getChartTitle().addTextFrameForOverriding("示例标题");
chart.getChartTitle().getTextFrameForOverriding().getTextFrameFormat().setCenterText(java.newByte(aspose.slides.NullableBool.True));
chart.getChartTitle().setHeight(20);
chart.hasTitle();

// 设置第一系列显示值
chart.getChartData().getSeries().get_Item(0).getLabels().getDefaultDataLabelFormat().setShowValue(true);

// 设置图表数据表的索引
var defaultWorksheetIndex = 0;

// 获取图表数据工作表
var fact = chart.getChartData().getChartDataWorkbook();

// 删除默认生成的系列和类别
chart.getChartData().getSeries().clear();
chart.getChartData().getCategories().clear();
var s = chart.getChartData().getSeries().size();
s = chart.getChartData().getCategories().size();

// 添加新的系列
chart.getChartData().getSeries().add(fact.getCell(defaultWorksheetIndex, 0, 1, "系列 1"),chart.getType());
chart.getChartData().getSeries().add(fact.getCell(defaultWorksheetIndex, 0, 2, "系列 2"),chart.getType());

// 添加新的类别
chart.getChartData().getCategories().add(fact.getCell(defaultWorksheetIndex, 1, 0, "类别 1"));
chart.getChartData().getCategories().add(fact.getCell(defaultWorksheetIndex, 2, 0, "类别 2"));
chart.getChartData().getCategories().add(fact.getCell(defaultWorksheetIndex, 3, 0, "类别 3"));

// 获取第一系列图表
var series = chart.getChartData().getSeries().get_Item(0);

// 现在填充系列数据
series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 1, 1, 20));
series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 2, 1, 50));
series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 3, 1, 30));

// 为系列设置填充颜色
series.getFormat().getFill().setFillType(java.newByte(aspose.slides.FillType.Solid));
series.getFormat().getFill().getSolidFillColor().setColor(colorRed);

// 获取第二系列图表
series = chart.getChartData().getSeries().get_Item(1);

// 填充系列数据
series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 1, 2, 30));
series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 2, 2, 10));
series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 3, 2, 60));

// 为系列设置填充颜色
series.getFormat().getFill().setFillType(java.newByte(aspose.slides.FillType.Solid));
series.getFormat().getFill().getSolidFillColor().setColor(colorGreen);

// 为新系列的每个类别创建自定义标签
// 将第一个标签设置为显示类别名称
var lbl = series.getDataPoints().get_Item(0).getLabel();
lbl.getDataLabelFormat().setShowCategoryName(true);

// 将第二个标签设置为显示系列名称
lbl = series.getDataPoints().get_Item(1).getLabel();
lbl.getDataLabelFormat().setShowSeriesName(true);

// 为第三个标签显示值
lbl = series.getDataPoints().get_Item(2).getLabel();
lbl.getDataLabelFormat().setShowValue(true);
lbl.getDataLabelFormat().setShowSeriesName(true);
lbl.getDataLabelFormat().setSeparator("/");

// 保存包含图表的演示文稿
pres.save("NewPresentation.pptx", aspose.slides.SaveFormat.Pptx);

在 Node.js 中向 PPT 添加图像

  1. 创建 Presentation 类的实例。
  2. 通过索引获取要添加图像的幻灯片的引用。
  3. 通过将图像添加到与演示文稿对象相关联的 IImagescollection 来创建 IPPImage 对象,该对象将用于填充形状。
  4. 指定图像的宽度和高度。
  5. 通过形状对象公开的 AddPictureFrame 方法基于图像的宽度和高度创建 PictureFrame
  6. 将包含图像的图片框添加到幻灯片中。
  7. 将演示文稿保存为 PPT 文件。
var fileStream = fs.createReadStream("image.png");
aspose.slides.readBytesFromStream(fileStream, function (imgArray) {
    var pres = new aspose.slides.Presentation();
    var img = pres.getImages().addImage(imgArray);
    pres.getSlides().get_Item(0).getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 10, 10, 200, 200, img); 
    pres.save("NewPresentation.pptx", aspose.slides.SaveFormat.Pptx);    
});

结论

在本文中,我们向您介绍了在 Node.js 中创建 PowerPoint 的操作,并通过简单地运行几行 Node.js 代码执行其他任务。您可能会对了解更多强大的 PowerPoint API 感兴趣,它使一切变得简单。

另见

  • Aspose.Slides for Node.js via Java 功能
  • Aspose.Slides for Node.js via Java 文档