Create PowerPoint in Node.js

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,提供開發人員和應用程序所需的一切,以在 node.js 和 JavaScript 服務器端應用程序中創建、打開、轉換和操作 PowerPoint 文檔。

您可以通過運行此命令從 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);

// 添加矩形類型的 AutoShape
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 文件的 Presentation 類
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("Sample Title");
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, "Series 1"),chart.getType());
chart.getChartData().getSeries().add(fact.getCell(defaultWorksheetIndex, 0, 2, "Series 2"),chart.getType());

// 添加新類別
chart.getChartData().getCategories().add(fact.getCell(defaultWorksheetIndex, 1, 0, "Caetegoty 1"));
chart.getChartData().getCategories().add(fact.getCell(defaultWorksheetIndex, 2, 0, "Caetegoty 2"));
chart.getChartData().getCategories().add(fact.getCell(defaultWorksheetIndex, 3, 0, "Caetegoty 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 中向 PowerPoint 添加圖像

  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 感興趣,該 API 使一切變得簡單。

參見

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