JavaScript 无法在客户端文件系统上本地创建文件。但是,我想知道,是否有可能以某种方式从一些 JSON 在网页(div 或 iframe)中创建 Powerpoint MIME,然后让 UserAgent 找出它是 Powerpoint,期望 UserAgent 会为用户提供选择将其显示为 PowerPoint 演示文稿?
注意:这里的想法是能够获取一些 JSON 并进行 powerpoint 演示,而无需向服务器发出请求以创建 Powerpoint 文件。
JavaScript 无法在客户端文件系统上本地创建文件。但是,我想知道,是否有可能以某种方式从一些 JSON 在网页(div 或 iframe)中创建 Powerpoint MIME,然后让 UserAgent 找出它是 Powerpoint,期望 UserAgent 会为用户提供选择将其显示为 PowerPoint 演示文稿?
注意:这里的想法是能够获取一些 JSON 并进行 powerpoint 演示,而无需向服务器发出请求以创建 Powerpoint 文件。
一个可以生成 Powerpoint 二进制文件的 JavaScript 库是PptxGenJS。
一般来说,您可以使用具有 Powerpoint MIME 类型的数据 URL 创建链接:
data:ms-powerpoint;base64,aGVsbG8gd... // base64-encoded file
运行您的逻辑以创建二进制 Powerpoint 文件,然后对其进行 base64 编码(例如使用btoa
),然后动态生成链接或重定向window.location
到数据 URI。
var binaryPPFile = createPowerpointFromJSON(sourceJSON);
window.location = "data:ms-powerpoint;base64," + btoa(binaryPPFile);
我假设createPowerpointFromJSON
的函数可能会调用 PptxGenJS API 或任何其他生成 Powerpoint 的 API。