Создание презентаций в PHP

Обзор

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

Прежде чем начать, установите Aspose.Slides for PHP via Java с помощью Composer и запустите PHP/Java Bridge в Apache Tomcat. См. Installation для полной настройки. Примеры ниже предполагают, что Tomcat работает на localhost:8080, а папка Composer vendor расположена рядом со скриптом.

Создание презентации PowerPoint

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

  1. Создайте экземпляр класса Presentation. Новая презентация уже содержит один пустой слайд.
  2. Получите этот слайд из коллекции, возвращаемой Presentation::getSlides, по индексу 0.
  3. Добавьте прямоугольник с помощью метода ShapeCollection::addAutoShape и задайте его текст с помощью TextFrame::setText.
  4. Сохраните презентацию как файл PPTX с помощью метода Presentation::save.
<?php
require_once("http://localhost:8080/JavaBridge/java/Java.inc");
require_once(__DIR__ . "/vendor/aspose/slides/ru/lib/aspose.slides.php");

use aspose\slides\Presentation;
use aspose\slides\SaveFormat;
use aspose\slides\ShapeType;

$presentation = new Presentation();
try {
    $slide = $presentation->getSlides()->get_Item(0);
    $shape = $slide->getShapes()->addAutoShape(ShapeType::Rectangle, 50, 50, 400, 100);
    $shape->getTextFrame()->setText("Hello, Aspose.Slides!");
    $presentation->save(__DIR__ . "/hello.pptx", SaveFormat::Pptx);
} finally {
    $presentation->dispose();
}

Две строки require_once загружают клиент PHP/Java Bridge из Tomcat и классы Aspose.Slides из пакета Composer. Верхний левый угол прямоугольника находится на расстоянии 50 пунктов от левого края и 50 пунктов от верхнего края слайда, а ширина прямоугольника составляет 400 пунктов, высота — 100 пунктов. Сохранённый файл содержит один слайд с этим прямоугольником и его текстом. Без лицензии Aspose.Slides также добавляет водяной знак оценки на каждый сохраняемый слайд; см. Licensing.

Создание и сохранение презентации

Чтобы создать пустую презентацию и сохранить её, создайте экземпляр класса Presentation и сохраните её в любом формате из перечисления SaveFormat. В результате будет презентация с одним пустым слайдом.

<?php
require_once("http://localhost:8080/JavaBridge/java/Java.inc");
require_once(__DIR__ . "/vendor/aspose/slides/ru/lib/aspose.slides.php");

use aspose\slides\Presentation;
use aspose\slides\SaveFormat;

$presentation = new Presentation();
try {
    $presentation->save(__DIR__ . "/OutputPresentation.pptx", SaveFormat::Pptx);
} finally {
    $presentation->dispose();
}

Открытие и сохранение презентации

Чтобы преобразовать презентацию из одного формата в другой, откройте её, передав путь к файлу конструктору Presentation, затем сохраните в целевом формате. Aspose.Slides определяет входной формат, такой как PPT, PPTX или ODP, по самому файлу.

Пример ниже ожидает наличие презентации OpenDocument с именем Sample.odp рядом со скриптом и сохраняет её как PPTX.

<?php
require_once("http://localhost:8080/JavaBridge/java/Java.inc");
require_once(__DIR__ . "/vendor/aspose/slides/ru/lib/aspose.slides.php");

use aspose\slides\Presentation;
use aspose\slides\SaveFormat;

$presentation = new Presentation(__DIR__ . "/Sample.odp");
try {
    $presentation->save(__DIR__ . "/OutputPresentation.pptx", SaveFormat::Pptx);
} finally {
    $presentation->dispose();
}

FAQ

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

Вы можете сохранять в PPTX, PPT и ODP, а также экспортировать в PDF, XPS, HTML, SVG и изображения, среди прочего.

Могу ли я начать с шаблона (POTX/POTM) и сохранить как обычный PPTX?

Да. Загрузите шаблон и сохраните в нужный формат; форматы POTX/POTM/PPTM и подобные поддерживаются.

Как управлять размером слайда/соотношением сторон при создании презентации?

Установите slide size (включая предустановки, такие как 4:3 и 16:9, или пользовательские размеры) и выберите, как масштабировать содержание.

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

В пунктах: 1 дюйм равен 72 единицам.

Как обрабатывать очень большие презентации (с множеством медиафайлов), чтобы уменьшить использование памяти?

Используйте BLOB management strategies, ограничьте хранение в памяти, используя временные файлы, и отдавайте предпочтение файловым рабочим процессам вместо полностью потоковых операций в памяти.

Могу ли я создавать/сохранять презентации параллельно?

Вы не можете работать с тем же экземпляром Presentation из multiple threads. Запускайте отдельные изолированные экземпляры для каждого потока или процесса.

Как удалить пробный водяной знак и ограничения?

Apply a license один раз на процесс. XML лицензии должен оставаться неизменным, а настройка лицензии должна быть синхронизирована, если задействовано несколько потоков.

Могу ли я цифрово подписать создаваемый PPTX?

Да. Digital signatures (добавление и проверка) поддерживаются для презентаций.

Поддерживаются ли макросы (VBA) в созданных презентациях?

Да. Вы можете create/edit VBA projects и сохранять файлы с включёнными макросами, такие как PPTM/PPSM.