Создание презентаций в Node.js через .NET

Обзор

В этой статье показано, как создать презентацию с помощью Aspose.Slides for Node.js via .NET, добавить текстовое поле на первый слайд и сохранить результат в файл PPTX. Также показано, как добавить дополнительные слайды и как переключить презентацию на широкоформатные (16:9) слайды.

Для примеров требуется проект, настроенный согласно инструкции в разделе Installation. Сохраните каждый пример как файл с расширением .js в папке проекта и запустите его из этой папки с помощью node, например node create-presentation.js.

Создание презентации с текстовым полем

Чтобы создать презентацию и разместить текстовое поле на её первом слайде, выполните следующие действия:

  1. Создайте экземпляр класса Presentation. Новая презентация уже содержит один пустой слайд.
  2. Получите этот слайд из коллекции slides. Коллекции в этом пакете читаются методом get(index), индексы начинаются с 0.
  3. Добавьте прямоугольник с помощью метода addAutoShape и задайте text его textFrame.
  4. Сохраните презентацию методом save и значением SaveFormat.Pptx.
  5. Вызовите dispose в блоке finally, чтобы освободить .NET‑ресурсы, поддерживающие презентацию.
const { Presentation, ShapeType, SaveFormat } = require("aspose.slides.via.net");

const presentation = new Presentation();
try {
    const slide = presentation.slides.get(0);

    // Позиция (x, y) и размер (ширина, высота) указаны в пунктах.
    const textBox = slide.shapes.addAutoShape(ShapeType.Rectangle, 50, 50, 400, 100);
    textBox.textFrame.text = "Hello, Aspose.Slides!";

    presentation.save("new-presentation.pptx", SaveFormat.Pptx);
    console.log("Saved new-presentation.pptx");
} finally {
    presentation.dispose();
}

Скрипт записывает new-presentation.pptx в папку проекта. Файл содержит один слайд с заполненным прямоугольником, левый верхний угол которого находится на расстоянии 50 пунктов от левого и верхнего краёв слайда. Прямоугольник имеет ширину 400 пунктов и высоту 100 пунктов, текст в нём центрирован. Один пункт = 1/72 дюйма. Без лицензии Aspose.Slides также добавляет водяной знак оценки к слайду; см. раздел Licensing.

Добавление слайдов

Новая презентация содержит один слайд. Чтобы добавить больше, передайте слайд‑макет в метод addEmptySlide коллекции slides. Метод getByType коллекции layoutSlides возвращает первый макет указанного SlideLayoutType.

Следующий пример добавляет два слайда с макетом Blank:

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

const presentation = new Presentation();
try {
    const blankLayout = presentation.layoutSlides.getByType(SlideLayoutType.Blank);
    presentation.slides.addEmptySlide(blankLayout);
    presentation.slides.addEmptySlide(blankLayout);

    console.log("Slide count: " + presentation.slides.count);
    presentation.save("three-slides.pptx", SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

Скрипт выводит Slide count: 3 и записывает three-slides.pptx. Новые слайды добавляются после первого и не содержат фигур. Новая презентация всегда имеет макет Blank, но презентация, открытая из файла, может не иметь макета запрошенного типа; в этом случае getByType возвращает null, поэтому проверьте результат перед дальнейшим использованием.

Установка размера слайда

Новая презентация использует слайды 4:3 размером 720 × 540 пунктов (10 × 7,5 дюйма). Чтобы создать широкоформатные слайды, вызовите метод setSize свойства slideSize презентации, передав значение SlideSizeType и SlideSizeScaleType. Тип масштабирования указывает Aspose.Slides, как обращаться с уже существующими на слайдах объектами; DoNotScale оставляет их без изменений, что является правильным выбором для презентации без содержимого.

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

const presentation = new Presentation();
try {
    presentation.slideSize.setSize(SlideSizeType.Widescreen, SlideSizeScaleType.DoNotScale);

    const slideSize = presentation.slideSize.size;
    console.log(`Slide size: ${slideSize.width} x ${slideSize.height} points`);

    presentation.save("widescreen.pptx", SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

Скрипт выводит Slide size: 960 x 540 points, что соответствует 13,33 × 7,5 дюйма, и записывает widescreen.pptx. Значение SlideSizeType.OnScreen16x9 имеет тот же соотношение сторон 16:9, но меньше: 720 × 405 пунктов.

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

В каких единицах измеряются позиции и размеры?

В пунктах. Один дюйм = 72 пункта, поэтому слайд 4:3 по умолчанию имеет размеры 720 × 540 пунктов, а широкоформатный слайд 16:9 — 960 × 540 пунктов.

В какие форматы можно сохранить новую презентацию?

В любой из форматов, представленных в перечислении SaveFormat, например SaveFormat.Ppt для PowerPoint 97–2003, SaveFormat.Odp для OpenDocument или SaveFormat.Pdf. Для вывода в PDF см. раздел Convert PowerPoint to PDF.

Почему сохранённая презентация содержит текст «Evaluation only»?

Без лицензии Aspose.Slides добавляет водяной знак оценки к сохраняемым слайдам. Примените лицензию, как описано в разделе Licensing, чтобы убрать его.

Почему следует вызывать dispose?

Объект Presentation опирается на .NET‑объект, который занимает память и другие ресурсы. Вызов dispose освобождает их сразу после того, как презентация больше не нужна, а размещение вызова в блоке finally гарантирует освобождение ресурсов даже при возникновении ошибки.