在 Node.js via .NET 中打开演示文稿

概述

Aspose.Slides for Node.js via .NET 可以从文件路径或 Node.js Buffer 打开 PowerPoint 和 OpenDocument 演示文稿,例如 PPTX、PPT 和 ODP 文件。本文演示这两种方式,读取幻灯片数量,并将打开的演示文稿另存为其他格式。

示例假设项目文件夹中存在名为 sample.pptx 的演示文稿,该文件夹已按照 Installation 中的步骤进行设置。任何 PowerPoint 演示文稿均可使用。将每个示例保存为项目文件夹中的 .js 文件,并在该文件夹中使用 node 运行。

从文件打开演示文稿

要打开演示文稿,将其路径传递给 Presentation 构造函数。Aspose.Slides 会根据文件内容而非扩展名检测格式,因此相同代码可打开 PPTX、PPT 和 ODP 文件。相对路径相对于当前工作目录进行解析,而当您从项目文件夹运行脚本时,工作目录即为该文件夹。

const { Presentation } = require("aspose.slides.via.net");

const presentation = new Presentation("sample.pptx");
try {
    console.log("Slide count: " + presentation.slides.count);
} finally {
    presentation.dispose();
}

脚本会输出 sample.pptx 中的幻灯片数量,例如 Slide count: 9。slides 集合的 count 属性包括隐藏的幻灯片。如示例所示,在 finally 块中调用 dispose,以便即使代码出错,也能释放演示文稿背后的 .NET 资源。

从 Buffer 打开演示文稿

当演示文稿来自数据库、HTTP 上传或其他以字节而非文件路径提供的来源时,将 Node.js Buffer 作为第二个构造函数参数,第一参数传 null。以下示例将 sample.pptx 读取到缓冲区,以模拟此类来源:

const fs = require("fs");
const { Presentation } = require("aspose.slides.via.net");

const presentationData = fs.readFileSync("sample.pptx");

const presentation = new Presentation(null, presentationData);
try {
    console.log("Slide count: " + presentation.slides.count);
} finally {
    presentation.dispose();
}

脚本会打印与前例相同的幻灯片数量。第二个参数必须是 Buffer。如果传入其他类型,如 Uint8Array,构造函数不会报错,而是创建一个仅含一张空幻灯片的新演示文稿。请先使用 Buffer.from 将其他二进制类型转换为 Buffer。

将演示文稿另存为其他格式

要将演示文稿转换为其他演示文稿格式,打开后使用不同的 SaveFormat 值进行保存。以下示例打印 Aspose.Slides 检测到的格式(由 sourceFormat 属性返回),并将演示文稿保存为 OpenDocument 演示文稿:

const { Presentation, SaveFormat } = require("aspose.slides.via.net");

const presentation = new Presentation("sample.pptx");
try {
    console.log("Source format: " + presentation.sourceFormat);
    presentation.save("sample.odp", SaveFormat.Odp);
} finally {
    presentation.dispose();
}

脚本会输出 Source format: Pptx 并写入 sample.odp,其中包含相同的幻灯片。sourceFormat 返回 Ppt、Pptx 或 Odp。若想保存为 PDF 或图像,请参阅 Convert PowerPoint to PDF 和 Convert Slides to Images。

常见问题

如何打开受密码保护的演示文稿?

创建一个 LoadOptions 对象,设置其 password 属性,然后将该对象作为构造函数的第三个参数传入:new Presentation(\"protected.pptx\", null, loadOptions)。若密码不正确,构造函数会抛出错误。

为什么构造函数会抛出消息为空的 Error?

当 .NET 中的 Presentation 构造函数失败时,例如文件缺失、不是演示文稿或需要不同的密码,JavaScript 会收到一个消息为空的 Error。在打开文件之前,请先检查文件相对于工作目录是否存在,例如使用 fs.existsSync。

我可以打开哪些格式?

PowerPoint 与 OpenDocument 演示文稿格式,包括 PPT、PPTX、PPS、POT、POTX、PPTM、ODP、OTP 和 FODP。