Конвертировать презентации PowerPoint в XML в PHP

Обзор

Aspose.Slides for PHP via Java может преобразовывать презентации PowerPoint в формат PowerPoint XML Presentation. Вывод в XML полезен, когда требуется текстовое представление для анализа структуры презентации, устранения неполадок в сгенерированных документах, сравнения результатов в автоматических тестах или интеграции с рабочим процессом, который использует XML вместо пакета презентаций.

Используйте метод Presentation::save с значением Xml из перечисления SaveFormat. Вы можете записать результат напрямую в файл или в поток.

Преобразование презентации в XML-файл

Загрузите исходную презентацию с помощью класса Presentation и затем передайте путь вывода и SaveFormat::Xml в Presentation::save. Источником может быть любой поддерживаемый формат загрузки, например PPT, PPTX или ODP.

Ниже приведён пример, который преобразует презентацию PPTX в XML‑файл:

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

$inputPath = __DIR__ . DIRECTORY_SEPARATOR . "presentation.pptx";
$outputPath = __DIR__ . DIRECTORY_SEPARATOR . "presentation.xml";
$presentation = new Presentation($inputPath);
try {
    $presentation->save($outputPath, SaveFormat::Xml);
} finally {
    $presentation->dispose();
}

Запись XML-вывода в поток

Используйте перегруженный вариант Presentation::save, когда XML должен оставаться в памяти или передаваться другому компоненту, например веб‑службе, поставщику хранилища или конвейеру обработки XML. Ниже пример записывает результат в ByteArrayOutputStream и получает сформированный XML в виде массива байтов:

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

$inputPath = __DIR__ . DIRECTORY_SEPARATOR . "presentation.pptx";
$presentation = new Presentation($inputPath);
try {
    $xmlStream = new Java("java.io.ByteArrayOutputStream");
    try {
        $presentation->save($xmlStream, SaveFormat::Xml);
        $xmlBytes = $xmlStream->toByteArray();

        // Передайте $xmlBytes следующему компоненту в рабочем процессе.
    } finally {
        $xmlStream->close();
    }
} finally {
    $presentation->dispose();
}

ByteArrayOutputStream хранит все сгенерированные данные в памяти, поэтому перед вызовом toByteArray не требуется сбрасывать позицию.

Сравнение XML с форматами презентаций и экспорта

Выберите формат вывода в зависимости от того, как будет использоваться результат:

Формат Вывод Типичное использование
PowerPoint XML (.xml) Презентация PowerPoint XML Анализ структуры, устранение неполадок, сравнение сгенерированных данных и интеграция на основе XML
PPT (.ppt) Устаревший двоичный файл презентации Совместимость со старыми рабочими процессами PowerPoint
PPTX (.pptx) Пакет Office Open XML, содержащий несколько частей Обычное редактирование PowerPoint и обмен презентациями
PDF или TIFF Страницы фиксированного макета или многостраничное изображение Просмотр, печать и архивирование
PNG, JPEG или SVG Сформированное представление отдельного слайда Эскизы, превью и графические ресурсы
HTML или HTML5 Веб‑ориентированный вывод презентации Просмотр в браузере и публикация в вебе

В отличие от PPT и PPTX, вывод в XML предназначен в первую очередь для инспекции и рабочих процессов, ориентированных на данные. В отличие от PDF, TIFF, HTML и форматов изображений слайдов, он представляет данные презентации, а не рендерит слайды как страницы или визуальные ресурсы. В таблице поддерживаемых форматов файлов указано, что PowerPoint XML Presentation доступен только для сохранения, поэтому не используйте его, если рабочий процесс требует загрузки экспортированного файла обратно в Aspose.Slides для дальнейшего редактирования.

FAQ

Является ли SaveFormat::Xml тем же, что сохранение файла PPTX?

Нет. PPTX — это пакет, содержащий несколько частей Office Open XML, тогда как SaveFormat::Xml создаёт файл презентации PowerPoint XML.

Могу ли я сохранить XML-вывод без создания файла на диске?

Да. Передайте поток с возможностью записи в Presentation::save. Например, используйте ByteArrayOutputStream для обработки в памяти.

Может ли Aspose.Slides загрузить экспортированный XML-файл снова?

Нет. Презентация PowerPoint XML в настоящее время поддерживается только для сохранения, но не для загрузки. Для обратного редактирования используйте PPTX или другой поддерживаемый формат презентации.

Преобразует ли XML каждый слайд в страницу или изображение?

Нет. Преобразование в XML записывает структурированные данные презентации. Для вывода страниц используйте PDF или TIFF, а для отдельных изображений слайдов — PNG, JPEG или SVG.