PresentationML (PPTX, XML)

Über PresentationML

PresentationML ist der Name für eine Familie von XML-basierten Formaten für Präsentationsdokumente. Office OpenXML (OOXML) ist das XML-basierte Format, das in Microsoft Office 2007-Anwendungen eingeführt wurde. Office OpenXML ist ein Containerformat für mehrere spezialisierte XML-basierte Auszeichnungssprachen. PresentationML ist die Auszeichnungssprache, die von Microsoft Office PowerPoint 2007 verwendet wird, um seine Dokumente zu speichern.

PresentationML in Aspose.Slides für C++

OOXML PresentationML-Dokumente liegen als PPTX-Dateien vor, die gezippte XML-Pakete sind, die den OOXML ECMA-376 Spezifikationen entsprechen. Aspose.Slides für C++ unterstützt umfassend das Erstellen, Lesen, Manipulieren und Schreiben von PresentationML-Dokumenten. Darüber hinaus ist Aspose.Slides für C++ in der Lage, PresentationML-Dokumente in verschiedene weit verbreitete Dokumentformate wie PDF, TIFF und XPS zu exportieren. Dies ist möglich, weil Aspose.Slides für C++ mit dem Ziel entwickelt wurde, Präsentationsdokumente umfassend zu verarbeiten, und PresentationML im Wesentlichen die interne Präsentation von Dokumenten als gezipptes XML-Paket enthält.

PresentationML ist offen, warum Aspose.Slides für C++ verwenden

Da PresentationML XML-basiert ist, ist es durchaus möglich, Anwendungen zur Verarbeitung und Generierung von PresentationML-Dokumenten unter Verwendung von XML-Klassen zu erstellen, ohne auf Drittanbieter-Bibliotheken wie Aspose.Slides für C++ angewiesen zu sein. Es gibt jedoch mehrere Vorteile bei der Verwendung von Aspose.Slides für C++ im Vergleich zu XML-Klassen, wenn man mit PresentationML-Dokumenten arbeitet.

Die OOXML-Spezifikation ist zu lang und umfasst mehrere tausend Seiten. Das bedeutet, um die PresentationML-Dokumente ordnungsgemäß zu verarbeiten, müssen Sie viel Zeit und Mühe investieren, um das Format solcher Dokumente zu verstehen. Andererseits müssen Sie bei der Verwendung von Aspose.Slides für C++ einfach die entsprechenden Klassen und deren jeweilige Methoden/Eigenschaften verwenden, um Operationen durchzuführen, die über XML-Klassen recht komplex erscheinen.

Die folgenden Funktionen sind sogar nicht verfügbar, wenn man mit PresentationML-Dokumenten über XML-Klassen umgeht:

  • Export von PPT-Dokumenten in PDF-, TIFF-, XPS-Formate
  • Export von Folien in den PPT-Dokumenten in SVG-Formate
  • Rendering von Folien in ein beliebiges von C++ Framework unterstütztes Bildformat
  • Automatisches Kopieren von Masterfolien aus Quellpräsentationen unter Verwendung der Klonfunktion
  • Anwendung von Schutz auf Formen

Lassen Sie uns ein Beispiel für ein PresentationML-Dokument mit einer einzigen Folie betrachten, die ein Textfeld mit dem Text „Hallo Welt“ enthält. Um den Text über XML-Klassen zu lesen, müssen Sie ein Programm schreiben, das diesen einfachen Text aus dem folgenden Fragment parsen kann:

Beispiel


 <?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>Hallo Welt

                </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>