Конвертация презентаций PowerPoint в XML на Python через Java
Обзор
Aspose.Slides for Python via Java может конвертировать презентации PowerPoint в формат PowerPoint XML Presentation. XML‑вывод полезен, когда требуется текстовое представление для инспекции структуры презентации, устранения проблем с сгенерированными документами, сравнения результатов в автоматических тестах или интеграции с рабочим процессом, использующим XML вместо пакета презентации.
Используйте метод Presentation.save со значением Xml из класса SaveFormat. Вы можете записать результат непосредственно в файл или в поток.
Note
SaveFormat.Xml создаёт PowerPoint XML Presentation. Он не извлекает отдельные части Office Open XML, хранящиеся внутри пакета PPTX. Если нужны точные части пакета PPTX, такие какppt/presentation.xml или отдельные XML‑файлы слайда, исследуйте сам пакет PPTX.
Конвертировать презентацию в XML‑файл
Загрузите исходную презентацию с помощью класса Presentation и затем передайте путь вывода и SaveFormat.Xml в Presentation.save. Источником может быть любой поддерживаемый формат, например PPT, PPTX или ODP.
Следующий пример конвертирует презентацию PPTX в XML‑файл:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, SaveFormat
presentation = Presentation("presentation.pptx")
try:
presentation.save("presentation.xml", SaveFormat.Xml)
finally:
presentation.dispose()
Записать XML‑вывод в поток
Используйте перегрузку метода Presentation.save для записи в поток, когда XML должен оставаться в памяти или передаваться другому компоненту, например веб‑службе, поставщику хранилища или XML‑конвейеру обработки. В следующем примере результат записывается в ByteArrayOutputStream и получается в виде объекта Python bytes:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, SaveFormat
ByteArrayOutputStream = jpype.JClass("java.io.ByteArrayOutputStream")
presentation = Presentation("presentation.pptx")
try:
xml_stream = ByteArrayOutputStream()
try:
presentation.save(xml_stream, SaveFormat.Xml)
java_bytes = xml_stream.toByteArray()
xml_data = bytes(java_bytes)
# Передайте xml_data следующему компоненту в рабочем процессе.
finally:
xml_stream.close()
finally:
presentation.dispose()
Сравнение 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 и форматов изображений слайдов, он представляет данные презентации, а не рендерит слайды как страницы или визуальные ресурсы. Таблица supported file formats указывает PowerPoint XML Presentation как формат только для сохранения, поэтому не используйте его, если рабочий процесс требует загрузки экспортированного файла обратно в Aspose.Slides для дальнейшего редактирования.
Вопросы и ответы
Экспорт XML одинаков ли с сохранением файла PPTX?
Нет. PPTX — это пакет, содержащий несколько частей Office Open XML, тогда как SaveFormat.Xml создаёт файл PowerPoint XML Presentation.
Можно ли сохранить XML‑вывод без создания файла на диске?
Да. Передайте записываемый Java‑поток вывода в Presentation.save. Например, используйте ByteArrayOutputStream для обработки в памяти.
Может ли Aspose.Slides загрузить экспортированный XML‑файл снова?
Нет. PowerPoint XML Presentation в текущий момент поддерживается только для сохранения, но не для загрузки. Используйте PPTX или другой поддерживаемый формат презентации, если требуется обратная совместимость редактирования.
Проводит ли XML‑конверсия рендеринг каждого слайда как страницы или изображения?
Нет. Конверсия в XML записывает структурированные данные презентации. Для вывода, ориентированного на страницы, используйте PDF или TIFF, а для отдельных изображений слайдов — PNG, JPEG или SVG.