PresentationML (PPTX, XML)
О PresentationML
PresentationML — это название семейства форматов на основе XML для презентационных документов. Office OpenXML (OOXML) — это основанный на XML формат, введенный в приложениях Microsoft Office 2007. Office OpenXML является контейнерным форматом для нескольких специализированных языков разметки на основе XML. PresentationML — это язык разметки, используемый Microsoft Office PowerPoint 2007 для хранения его документов.
PresentationML в Aspose.Slides для C++
Документы OOXML PresentationML представляют собой файлы PPTX, которые являются упакованными XML-пакетами, следуя спецификациям OOXML ECMA-376. Aspose.Slides для C++ широко поддерживает создание, чтение, манипулирование и запись документов PresentationML. Кроме того, Aspose.Slides для C++ способен экспортировать документы PresentationML в различные широко используемые форматы документов, такие как PDF, TIFF и XPS. Это возможно благодаря тому, что Aspose.Slides для C++ был разработан с целью всесторонней обработки презентационных документов, а PresentationML по сути представляет собой внутреннее представление документов в виде упакованного XML-пакета.
PresentationML открыт, почему стоит использовать Aspose.Slides для C++
Поскольку PresentationML основан на XML, довольно возможно создать приложения для обработки и генерации документов PresentationML, используя классы XML, без обращения к сторонним библиотекам классов, таким как Aspose.Slides для C++. Однако есть несколько преимуществ использования Aspose.Slides для C++ по сравнению с классами XML при работе с документами PresentationML.
Спецификация OOXML слишком длинная — несколько тысяч страниц. Это означает, что для правильной обработки документов PresentationML вам придется потратить много времени и усилий на изучение формата таких документов. С другой стороны, при использовании Aspose.Slides для C++ вам просто нужно использовать соответствующие классы и их методы/свойства для выполнения операций, которые кажутся довольно сложными, если выполнять их через классы XML.
Вот некоторые функции, которые даже недоступны при работе с документами PresentationML через классы XML:
- Экспорт документов PPT в форматы PDF, TIFF, XPS
- Экспорт слайдов в документах PPT в форматы SVG
- Отображение слайда в любой поддерживаемый формат изображения C++ Framework
- Автоматическое копирование мастеров из исходных презентаций с использованием функции клонирования
- Применение защиты к фигурам
Приведем пример документа PresentationML с одним слайдом, содержащим текстовое поле с текстом «Hello World». Чтобы прочитать текст с помощью классов XML, вам придется написать программу, которая может парсить этот простой текст из следующего фрагмента:
Пример
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<p:sld xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:p="http://schemas.openxmlformats.org/presentationml/2006/main">
<p:cSld>
<p:spTree>
<p:nvGrpSpPr>
<p:cNvPr id="1" name=""/>
<p:cNvGrpSpPr/>
<p:nvPr/>
</p:nvGrpSpPr>
<p:grpSpPr>
<a:xfrm>
<a:off x="0" y="0"/>
<a:ext cx="0" cy="0"/>
<a:chOff x="0" y="0"/>
<a:chExt cx="0" cy="0"/>
</a:xfrm></p:grpSpPr><p:sp>
<p:nvSpPr><p:cNvPr id="4" name="TextBox 3"/>
<p:cNvSpPr txBox="1"/>
<p:nvPr/>
</p:nvSpPr>
<p:spPr>
<a:xfrm>
<a:off x="2819400" y="2590800"/>
<a:ext cx="1297086" cy="369332"/>
</a:xfrm>
<a:prstGeom prst="rect">
<a:avLst/>
</a:prstGeom>
<a:noFill/>
</p:spPr>
<p:txBody>
<a:bodyPr wrap="none" rtlCol="0">
<a:spAutoFit/>
</a:bodyPr>
<a:lstStyle/>
<a:p>
<a:r>
<a:rPr lang="en-US"/>
<a:t>Hello World
</a:t>
</a:r>
<a:endParaRPr lang="en-US"/>
</a:p>
</p:txBody>
</p:sp>
</p:spTree>
</p:cSld>
<p:clrMapOvr>
<a:masterClrMapping/>
</p:clrMapOvr>
</p:sld>