PowerPoint 文件是由 Microsoft PowerPoint 开发的演示文稿文件。在某些情况下,您可能需要合并两个或多个 PowerPoint 演示文稿。例如,您需要合并幻灯片以使用以前创建的幻灯片来创建演示文稿以供数据参考,或者当不同的用户正在处理同一主题时。组合 PowerPoint 幻灯片可帮助您保持信息的一致性并使您的 PowerPoint 演示文稿更加高效。今天,我们将学习如何在 Node.js 中将多个 PowerPoint 演示文稿合并为一个。
本文应涵盖以下主题:
- 文档合并 REST API 和 Node.js SDK
- 使用 REST API 在 Node.js 中合并多个 PowerPoint 演示文稿
- 如何使用 Node.js 合并特定的 PowerPoint 幻灯片
文档合并 REST API 和 Node.js SDK
为了合并多个 PPTX 文件,我将使用 GroupDocs.Merger Cloud 的 Node.js SDK API。它允许您从支持的文档格式(例如 Word、Excel、PowerPoint, Visio 绘图、PDF 和 HTML 等)中组合、提取、删除和重新排列单个页面或页面集合。
您可以在控制台中使用以下命令将 GroupDocs.Merger cloud 安装到您的 Node.js 应用程序:
npm install groupdocs-merger-cloud
在执行上述步骤之前,请从 dashboard 获取您的 Client ID 和 Secret。获得 ID 和密码后,添加如下所示的代码:
// 从 http://api.groupdocs.cloud 在您的节点应用程序中导入 Node.js SDK
global.groupdocs_merger_cloud = require("groupdocs-merger-cloud");
global.fs = require("fs");
// 从 https://dashboard.groupdocs.cloud 获取 clientId 和 clientSecret(需要免费注册)。
global.clientId = "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx";
global.clientSecret = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
global.myStorage = "test-internal-storage";
const config = new groupdocs_merger_cloud.Configuration(clientId, clientSecret);
config.apiBaseUrl = "https://api.groupdocs.cloud";
使用 REST API 在 Node.js 中合并多个 PowerPoint 演示文稿
您可以按照下面给出的简单步骤,以编程方式将多个 PowerPoint 演示文稿组合到云端的单个文件中:
上传 PowerPoint 文件
首先,使用下面给出的代码示例将 PowerPoint 文件上传到云端:
// 构建FileApi
let fileApi = groupdocs_merger_cloud.FileApi.fromConfig(config);
// 从系统驱动器打开多个 pptx 文件文件夹。
let resourcesFolder = 'H:\\groupdocs-cloud-data\\sample-pptx\\';
fs.readdir(resourcesFolder, (err, files) => {
files.forEach(file => {
// 一个一个地读取文件
fs.readFile(resourcesFolder + file, (err, fileStream) => {
// 创建上传文件请求
let request = new groupdocs_merger_cloud.UploadFileRequest("nodejs-testing/" + file, fileStream, myStorage);
// 上传文件
fileApi.uploadFile(request)
.then(function (response) {
console.log(file + " file uploaded: " + response.uploaded.length);
})
.catch(function (error) {
console.log("Error: " + error.message);
});
});
});
});
因此,上传的 PowerPoint 文件将在云端仪表板的 文件部分 中可用。
使用 Node.js 合并多个 PowerPoint 文件
您可以按照下面提到的步骤以编程方式轻松地将多个 PPT 或 PPTX 文件合并为一个文件:
- 创建 DocumentApi 的实例
- 现在,创建第一个 JoinItem
- 接下来,创建第一项FileInfo
- 为 FileInfo 中的第一个 JoinItem 提供输入文件路径
- 创建第二个 JoinItem
- 创建第二项FileInfo
- 为 FileInfo 中的第二个 JoinItem 提供输入文件路径
- 创建多个文件 JoinOptions
- 添加逗号分隔的已创建连接项列表
- 设置输出文件路径
- 使用 JoinOptions 作为参数创建 JoinRequest
- 通过调用 DocumentAPI 的 join() 方法获取结果
以下代码片段展示了如何在 Node.js 中使用 REST API 合并多个 PowerPoint 演示文稿:
// 如何使用 Node.js 合并 PowerPoint ppt/pptx 文件
const combine = async () => {
let documentApi = groupdocs_merger_cloud.DocumentApi.fromKeys(clientId, clientSecret);
// 创建第一个连接项
let item1 = new groupdocs_merger_cloud.JoinItem();
item1.fileInfo = new groupdocs_merger_cloud.FileInfo();
item1.fileInfo.filePath = "nodejs-testing/sample-file1.pptx";
// 创建第二个连接项
let item2 = new groupdocs_merger_cloud.JoinItem();
item2.fileInfo = new groupdocs_merger_cloud.FileInfo();
item2.fileInfo.filePath = "nodejs-testing/sample-file2.pptx";
// 创建连接选项
let options = new groupdocs_merger_cloud.JoinOptions();
options.joinItems = [item1, item2];
options.outputPath = "nodejs-testing/joined-file.pptx";
try {
// 创建加入文档请求
let joinRequest = new groupdocs_merger_cloud.JoinRequest(options);
let result = await documentApi.join(joinRequest);
}
catch (err) {
throw err;
}
}
combine()
.then(() => {
console.log("Successfully combined powerpoint pptx files: ");
})
.catch((err) => {
console.log("Error occurred while merging the PowerPoint files:", err);
})
下载合并文件
上面的代码示例将合并后的 PowerPoint PPTX 文件保存在云端。您可以使用以下代码示例下载它:
// 构造FileApi下载合并后的文件
var fileApi = groupdocs_merger_cloud.FileApi.fromConfig(config);
// 创建下载文件请求
let request = new groupdocs_merger_cloud.DownloadFileRequest("nodejs-testing/joined-file.pptx", myStorage);
// 下载文件和响应类型 Stream
fileApi.downloadFile(request)
.then(function (response) {
// 将文件保存在系统目录中
fs.writeFile("H:\\groupdocs-cloud-data\\joined-file.pptx", response, "binary", function (err) { });
console.log("Expected response type is Stream: " + response.length);
})
.catch(function (error) {
console.log("Error: " + error.message);
});
如何使用 Node.js 合并特定的 PowerPoint 幻灯片
您可以按照以下步骤以编程方式轻松地将多个 PPTX 文件的特定幻灯片合并到一个文件中:
- 首先,创建 DocumentApi 的实例
- 接下来,创建第一个 JoinItem
- 现在,创建第一个项目 FileInfo
- 为 FileInfo 中的第一个 JoinItem 设置输入文件路径
- 提供以逗号分隔的要合并的页面列表
- 创建第二个 JoinItem
- 创建第二项FileInfo
- 为 FileInfo 中的第二个 JoinItem 设置输入文件路径
- 现在,设置 startPageNumber 值
- 接下来,设置 endPageNumber 值
- 创建多个文件 JoinOptions
- 添加逗号分隔的已创建连接项列表
- 设置输出文件路径
- 使用 JoinOptions 作为参数创建 JoinRequest
- 通过调用 DocumentAPI 的 join() 方法获取结果
以下代码片段显示了如何在 Node.js 中使用 REST API 合并特定的 PowerPoint pptx 幻灯片:
// 如何使用 Node.js 合并特定的 ppt/pptx 文件幻灯片
const mergespecific = async () => {
// 合并ppt/pptx api初始化
let documentApi = groupdocs_merger_cloud.DocumentApi.fromKeys(clientId, clientSecret);
// 创建第一个连接项
let item1 = new groupdocs_merger_cloud.JoinItem();
item1.fileInfo = new groupdocs_merger_cloud.FileInfo();
item1.fileInfo.filePath = "nodejs-testing/sample-file1.pptx";
item1.pages = [3, 4];
// 创建第二个连接项
let item2 = new groupdocs_merger_cloud.JoinItem();
item2.fileInfo = new groupdocs_merger_cloud.FileInfo();
item2.fileInfo.filePath = "nodejs-testing/sample-file2.pptx";
item2.startPageNumber = 2
item2.endPageNumber = 4
// 创建连接选项
let options = new groupdocs_merger_cloud.JoinOptions();
options.joinItems = [item1, item2];
options.outputPath = "nodejs-testing/joined-file.pptx";
try {
// 创建加入文档请求
let joinRequest = new groupdocs_merger_cloud.JoinRequest(options);
let result = await documentApi.join(joinRequest);
}
catch (err) {
throw err;
}
}
mergespecific()
.then(() => {
console.log("Successfully merged pptx slides: ");
})
.catch((err) => {
console.log("Error occurred while combining the PowerPoint files:", err);
})
在线试用
请试用以下免费在线PPTX合并工具,它是使用上述API开发的。
结论
在本文中,您已了解:
- 如何在云端合并多个 PowerPoint 文件;
- 以编程方式将 PowerPoint 文件上传到云端;
- 如何在 Node.js 中使用 REST API 将特定的 pptx 幻灯片合并到一个文件中;
- 以编程方式从云端下载合并文件;
API 还使您能够重新排序或替换文档页面、更改页面方向、管理文档密码以及对任何支持的文件格式轻松执行其他操作。它还提供 .NET、Java、PHP、Ruby、Android 和 Python SDK 作为 Cloud API 的文档合并系列成员。您可以使用 文档 了解有关 GroupDocs.Merge Cloud API 的更多信息。我们还提供了一个 API 参考 部分,让您可以直接通过浏览器可视化我们的 API 并与之交互。
问一个问题
您可以通过我们的 免费支持论坛 询问有关如何合并 PPTX 幻灯片的问题