Преобразование PPT и PPTX в JPG на JavaScript

О конвертации PowerPoint в JPG

С помощью Aspose.Slides API вы можете преобразовать презентацию PowerPoint PPT или PPTX в изображение JPG. Также возможно преобразовать PPT/PPTX в JPEG, PNG или SVG. С этими функциями легко реализовать собственный просмотрщик презентаций, создать миниатюру для каждого слайда. Это может быть полезно, если вы хотите защитить слайды презентации от копирования, демонстрировать презентацию в режиме только для чтения. Aspose.Slides позволяет конвертировать всю презентацию или отдельный слайд в форматы изображений.

todo:image_alt_text

Преобразовать PowerPoint PPT/PPTX в JPG

Ниже перечислены шаги для конвертации PPT/PPTX в JPG:

  1. Создайте экземпляр типа Presentation.
  2. Получите объект слайда типа Slide из коллекции Presentation.getSlides().
  3. Создайте миниатюру каждого слайда, а затем преобразуйте её в JPG. Метод Slide.getImage(float scaleX, float scaleY) используется для получения миниатюры слайда; он возвращает объект Imagess. Метод getImage должен вызываться у нужного слайда типа Slide, масштабы результирующей миниатюры передаются в метод.
  4. После получения миниатюры слайда вызовите метод IImage.save(String formatName, int imageFormat) из объекта миниатюры. Передайте в него полученное имя файла и формат изображения.
var pres = new aspose.slides.Presentation("PowerPoint-Presentation.pptx");
try {
    for (let i = 0; i < pres.getSlides().size(); i++) {
        let sld = pres.getSlides().get_Item(i);
        // Создаёт изображение в полном масштабе
        var slideImage = sld.getImage(1.0, 1.0);
        // Сохраняет изображение на диск в формате JPEG
        try {
            slideImage.save(java.callStaticMethodSync("java.lang.String", "format", "Slide_%d.jpg", sld.getSlideNumber()), aspose.slides.ImageFormat.Jpeg);
        } finally {
            if (slideImage != null) {
                slideImage.dispose();
            }
        }
    }
} finally {
    if (pres != null) {
        pres.dispose();
    }
}

Преобразовать PowerPoint PPT/PPTX в JPG с пользовательскими размерами

Чтобы изменить размеры полученной миниатюры и JPG‑изображения, вы можете задать значения ScaleX и ScaleY, передав их в методы Slide.getImage(float scaleX, float scaleY):

var pres = new aspose.slides.Presentation("PowerPoint-Presentation.pptx");
try {
    // Определяет размеры
    var desiredX = 1200;
    var desiredY = 800;
    // Получает масштабированные значения X и Y
    var ScaleX = 1.0 / pres.getSlideSize().getSize().getWidth() * desiredX;
    var ScaleY = 1.0 / pres.getSlideSize().getSize().getHeight() * desiredY;
    for (let i = 0; i < pres.getSlides().size(); i++) {
        let sld = pres.getSlides().get_Item(i);
        // Создаёт изображение в полном масштабе
        var slideImage = sld.getImage(ScaleX, ScaleY);
        // Сохраняет изображение на диск в формате JPEG
        try {
            slideImage.save(java.callStaticMethodSync("java.lang.String", "format", "Slide_%d.jpg", sld.getSlideNumber()), aspose.slides.ImageFormat.Jpeg);
        } finally {
            if (slideImage != null) {
                slideImage.dispose();
            }
        }
    }
} finally {
    if (pres != null) {
        pres.dispose();
    }
}

Отображение комментариев при сохранении презентации в изображение

Aspose.Slides для Node.js через Java предоставляет возможность отрисовывать комментарии на слайдах презентации при их конвертации в изображения. Этот код на JavaScript демонстрирует работу:

var pres = new aspose.slides.Presentation("presentation.pptx");
try {
    var notesOptions = new aspose.slides.NotesCommentsLayoutingOptions();
    notesOptions.setNotesPosition(aspose.slides.NotesPositions.BottomTruncated);
    var opts = new aspose.slides.RenderingOptions();
    opts.setSlidesLayoutOptions(notesOptions);
    for (let i = 0; i < pres.getSlides().size(); i++) {
        let sld = pres.getSlides().get_Item(i);
        var slideImage = sld.getImage(opts, java.newInstanceSync("java.awt.Dimension", 740, 960));
        try {
            slideImage.save(java.callStaticMethodSync("java.lang.String", "format", "Slide_%d.png", sld.getSlideNumber()));
        } finally {
            if (slideImage != null) {
                slideImage.dispose();
            }
        }
    }
} finally {
    if (pres != null) {
        pres.dispose();
    }
}

Смотрите также

Смотрите другие варианты конвертации PPT/PPTX в изображение, например:

FAQ

Поддерживает ли этот метод пакетную конвертацию?

Да, Aspose.Slides позволяет выполнять пакетную конвертацию нескольких слайдов в JPG за одну операцию.

Поддерживает ли конвертация SmartArt, диаграммы и другие сложные объекты?

Да, Aspose.Slides отображает всё содержание, включая SmartArt, диаграммы, таблицы, фигуры и т.д. Однако точность отображения может немного отличаться от PowerPoint, особенно при использовании пользовательских или отсутствующих шрифтов.

Есть ли ограничения на количество обрабатываемых слайдов?

Aspose.Slides сам по себе не накладывает строгих ограничений на количество обрабатываемых слайдов. Однако при работе с большими презентациями или изображениями высокого разрешения возможно возникновение ошибки нехватки памяти.