Конвертировать слайды PowerPoint в изображения с помощью JavaScript

Обзор

Aspose.Slides for Node.js via Java позволяет легко конвертировать слайды презентаций PowerPoint и OpenDocument в различные форматы изображений, включая BMP, PNG, JPG (JPEG), GIF и другие.

Чтобы конвертировать слайд в изображение, выполните следующие шаги:

  1. Определите необходимые параметры конвертации и выберите слайды, которые вы хотите экспортировать, используя:
  2. Создайте изображение слайда, вызвав метод getImage.

В Aspose.Slides for Node.js via Java класс IImage позволяет работать с изображениями, определенными пиксельными данными. С помощью этого класса можно сохранять изображения в широком спектре форматов (BMP, JPG, PNG и др.).

Конвертация слайдов в Bitmap и сохранение изображений в PNG

Вы можете конвертировать слайд в объект bitmap и использовать его напрямую в вашем приложении. Кроме того, вы можете конвертировать слайд в bitmap, а затем сохранить изображение в JPEG или любом другом предпочтительном формате.

В этом примере JavaScript показано, как конвертировать первый слайд презентации в объект bitmap, а затем сохранить изображение в формате PNG:

let presentation = new aspose.slides.Presentation("Presentation.pptx");
try {
    // Преобразовать первый слайд презентации в bitmap.
    let image = presentation.getSlides().get_Item(0).getImage();
    try {
        // Сохранить изображение в формате PNG.
        image.save("Slide_0.png", aspose.slides.ImageFormat.Png);
    } finally {
        image.dispose();
    }
} finally {
    presentation.dispose();
}

Конвертация слайдов в изображения с пользовательскими размерами

Вам может потребоваться получить изображение определённого размера. Используя перегрузку метода getImage, можно конвертировать слайд в изображение с конкретными размерами (ширина и высота).

В этом примере показано, как это сделать:

let imageSize = java.newInstanceSync("java.awt.Dimension", 1820, 1040);

let presentation = new aspose.slides.Presentation("Presentation.pptx");
try {
    // Преобразовать первый слайд презентации в bitmap с указанным размером.
    let image = presentation.getSlides().get_Item(0).getImage(imageSize);
    try {
        // Сохранить изображение в формате JPEG.
        image.save("Slide_0.jpg", aspose.slides.ImageFormat.Jpeg);
    } finally {
        image.dispose();
    }
} finally {
    presentation.dispose();
}

Конвертация слайдов с заметками и комментариями в изображения

Некоторые слайды могут содержать заметки и комментарии.

Aspose.Slides предоставляет два класса — TiffOptions и RenderingOptions — позволяющие управлять рендерингом слайдов презентации в изображения. Оба класса включают метод setSlidesLayoutOptions, который позволяет настроить рендеринг заметок и комментариев на слайде при его конвертации в изображение.

С помощью класса NotesCommentsLayoutingOptions можно указать желаемое положение заметок и комментариев в полученном изображении.

В этом примере JavaScript показано, как конвертировать слайд с заметками и комментариями:

const scaleX = 2;
const scaleY = scaleX;

// Загрузить файл презентации.
let presentation = new aspose.slides.Presentation("Presentation_with_notes_and_comments.pptx");
try {
    let notesCommentsOptions = new aspose.slides.NotesCommentsLayoutingOptions();
    notesCommentsOptions.setNotesPosition(aspose.slides.NotesPositions.BottomTruncated);                  // Установить положение заметок.
    notesCommentsOptions.setCommentsPosition(aspose.slides.CommentsPositions.Right);                      // Установить положение комментариев.
    notesCommentsOptions.setCommentsAreaWidth(500);                                                       // Установить ширину области комментариев.
    notesCommentsOptions.setCommentsAreaColor(java.getStaticFieldValue("java.awt.Color", "LIGHT_GRAY"));  // Установить цвет области комментариев.

    // Создать параметры рендеринга.
    let options = new aspose.slides.RenderingOptions();
    options.setSlidesLayoutOptions(notesCommentsOptions);
 
    // Преобразовать первый слайд презентации в изображение.
    let image = presentation.getSlides().get_Item(0).getImage(options, scaleX, scaleY);
    try {
        // Сохранить изображение в формате GIF.
        image.save("Image_with_notes_and_comments_0.gif", aspose.slides.ImageFormat.Gif);
    } finally {
        image.dispose();
    }
} finally {
    presentation.dispose();
}

Конвертация слайдов в изображения с использованием параметров TIFF

Класс TiffOptions предоставляет более тонкую настройку результирующего TIFF‑изображения, позволяя задавать такие параметры, как размер, разрешение, цветовая палитра и многое другое.

В этом примере JavaScript показан процесс конвертации, где параметры TIFF используются для получения черно‑белого изображения с разрешением 300 DPI и размером 2160 × 2800:

// Загрузить файл презентации.
let presentation = new aspose.slides.Presentation("sample.pptx");
try {
    // Получить первый слайд из презентации.
    let slide = presentation.getSlides().get_Item(0);

    // Настроить параметры выходного TIFF‑изображения.
    let tiffOptions = new aspose.slides.TiffOptions();
    tiffOptions.setImageSize(java.newInstanceSync("java.awt.Dimension", 2160, 2880));  // Установить размер изображения.
    tiffOptions.setPixelFormat(aspose.slides.ImagePixelFormat.Format1bppIndexed);      // Установить формат пикселей (чёрно‑белый).
    tiffOptions.setDpiX(300);                                                          // Установить горизонтальное разрешение.
    tiffOptions.setDpiY(300);                                                          // Установить вертикальное разрешение.

    // Преобразовать слайд в изображение с указанными параметрами.
    let image = slide.getImage(tiffOptions);
    try {
        // Сохранить изображение в формате TIFF.
        image.save("output.tiff", aspose.slides.ImageFormat.Tiff);
    } finally {
        image.dispose();
    }
} finally {
    presentation.dispose();
}

Конвертация всех слайдов в изображения

Aspose.Slides позволяет конвертировать все слайды презентации в изображения, фактически преобразуя всю презентацию в набор изображений.

В этом примере JavaScript показано, как конвертировать все слайды презентации в изображения:

const scaleX = 2;
const scaleY = scaleX;

let presentation = new aspose.slides.Presentation("Presentation.pptx");
try {
    // Отрисовать презентацию в изображения слайд за слайдом.
    for (let i = 0; i < presentation.getSlides().size(); i++) {
        // Управление скрытыми слайдами (не отрисовывать скрытые слайды).
        if (presentation.getSlides().get_Item(i).getHidden()) {
            continue;
        }

        // Преобразовать слайд в изображение.
        let image = presentation.getSlides().get_Item(i).getImage(scaleX, scaleY);
        try {
            // Сохранить изображение в формате JPEG.
            image.save("Slide_" + i + ".jpg", aspose.slides.ImageFormat.Jpeg);
        } finally {
            image.dispose();
        }
    }
} finally {
    presentation.dispose();
}

Часто задаваемые вопросы

Поддерживает ли Aspose.Slides рендеринг слайдов с анимацией?

Нет, метод getImage сохраняет только статическое изображение слайда без анимаций.

Можно ли экспортировать скрытые слайды в виде изображений?

Да, скрытые слайды можно обрабатывать так же, как обычные. Просто убедитесь, что они включены в цикл обработки.

Можно ли сохранять изображения с тенями и эффектами?

Да, Aspose.Slides поддерживает рендеринг теней, прозрачности и других графических эффектов при сохранении слайдов в виде изображений.