将 PowerPoint 幻灯片转换为 JavaScript 中的 PNG

关于 PowerPoint 到 PNG 转换

PNG(Portable Network Graphics)格式不如 JPEG(Joint Photographic Experts Group)流行,但仍然非常流行。

使用场景: 当你有复杂图像且尺寸不是问题时,PNG 比 JPEG 更合适的图像格式。

将 PowerPoint 转换为 PNG

按照以下步骤操作:

  1. 实例化 Presentation 类。
  2. Presentation.getSlides() 方法返回的集合中获取 Slide 类的幻灯片对象。
  3. 使用 Slide.getImage() 方法获取每个幻灯片的缩略图。
  4. 使用 IImage.save(String formatName, int imageFormat) 方法将幻灯片缩略图保存为 PNG 格式。

下面的 JavaScript 代码展示了如何将 PowerPoint 演示文稿转换为 PNG:

var pres = new aspose.slides.Presentation("pres.pptx");
try {
    for (var index = 0; index < pres.getSlides().size(); index++) {
        var slide = pres.getSlides().get_Item(index);
        var slideImage = slide.getImage();
        try {
            slideImage.save(("image_java_" + index) + ".png", aspose.slides.ImageFormat.Png);
        } finally {
            if (slideImage != null) {
                slideImage.dispose();
            }
        }
    }
} finally {
    if (pres != null) {
        pres.dispose();
    }
}

将 PowerPoint 转换为 PNG(自定义尺寸)

如果您想获得特定比例的 PNG 文件,可以设置 desiredXdesiredY 的值,这些值决定生成的缩略图的尺寸。

下面的 JavaScript 代码演示了上述操作:

var pres = new aspose.slides.Presentation("pres.pptx");
try {
    var scaleX = 2.0;
    var scaleY = 2.0;
    for (var index = 0; index < pres.getSlides().size(); index++) {
        var slide = pres.getSlides().get_Item(index);
        var slideImage = slide.getImage(scaleX, scaleY);
        try {
            slideImage.save(("image_java_" + index) + ".png", aspose.slides.ImageFormat.Png);
        } finally {
            if (slideImage != null) {
                slideImage.dispose();
            }
        }
    }
} finally {
    if (pres != null) {
        pres.dispose();
    }
}

将 PowerPoint 转换为 PNG(自定义大小)

如果您想获得特定大小的 PNG 文件,可以为 ImageSize 传入首选的 widthheight 参数。

下面的代码展示了在指定图像尺寸的情况下将 PowerPoint 转换为 PNG:

var pres = new aspose.slides.Presentation("pres.pptx");
try {
    var size = java.newInstanceSync("java.awt.Dimension", 960, 720);
    for (var index = 0; index < pres.getSlides().size(); index++) {
        var slide = pres.getSlides().get_Item(index);
        var slideImage = slide.getImage(size);
        try {
            slideImage.save(("image_java_" + index) + ".png", aspose.slides.ImageFormat.Png);
        } finally {
            if (slideImage != null) {
                slideImage.dispose();
            }
        }
    }
} finally {
    if (pres != null) {
        pres.dispose();
    }
}

常见问题

如何仅导出特定形状(例如图表或图片)而不是整张幻灯片?
Aspose.Slides 支持 为单个形状生成缩略图,您可以将形状渲染为 PNG 图像。

服务器上是否支持并行转换?
是的,但 不要跨线程共享 同一 Presentation 实例。请为每个线程或进程使用单独的实例。

导出为 PNG 时试用版有什么限制?
评估模式会在输出图像上添加水印,并在未应用许可证前强制执行 其他限制