Grundlegendes zum Binärdateiformat MS-PPT in PowerPoint (maschinell übersetzt)

Wichtig

Dieser Artikel wurde maschinell übersetzt. Bitte beachten Sie den Haftungsausschluss. Die englische Version des Artikels ist als Referenz hier verfügbar: here.

Zusammenfassung: Erfahren Sie mehr über das Binärdateiformat MS-PPT, dass in bisher veröffentlichten Versionen von Microsoft PowerPoint-Produkten verwendet wurde, einschließlich der grundlegenden Strukturen und Schlüsselkonzepte für die programmgesteuerte Interaktion mit PowerPoint.

Letzte Änderung: Donnerstag, 23. Juni 2011

Gilt für: Office 2007 | Office 2010 | PowerPoint 2010 | VBA

Inhalt dieses Artikels
Übersicht über MS-PPT-Dateiformat
Schlussbemerkung
Weitere Ressourcen

Veröffentlicht:   Februar 2011

Zur Verfügung gestellt von:   Microsoft Corporation

Inhalt

  • Übersicht über MS-PPT-Dateiformat

  • Hauptkomponenten der MS-PPT-Datei-Format

  • Extrahieren von Inhalten aus einer PowerPoint-Datei

    • Abrufen von Text aus PowerPoint-Dateien

    • Abrufen von Folien aus PowerPoint-Dateien

    • Rückgängig: Verlauf im MS-PPT-Format

  • Schlussbemerkung

  • Weitere Ressourcen

Dieser Artikel erläutert die Strukturen und einige Verfahren für das Arbeiten mit MS-PPT-Dateien. Es ist Teil einer Serie von Artikeln, die die binären Dateiformaten wird von Microsoft Office Produkten vorstellen. Dieser Artikel soll in Verbindung mit der Office File Format Documents auf MSDN verfügbar verwendet werden.

Übersicht über MS-PPT-Dateiformat

Das binäre Dateiformat MS PPT wird verwendet von Microsoft Office PowerPoint 2003, Microsoft PowerPoint 2002, Microsoft PowerPoint 2000, und Microsoft PowerPoint 97. Es beginnt mit einem Stream aktuelle Benutzer dann ein PowerPoint-Dokument-Stream und Stream Bilder plus einige optionale Streams für zusammenfassende Informationen, benutzerdefinierte XML-Daten und digitale Signaturen. Die meisten der tatsächliche Inhalt befindet sich im Container Folie innerhalb der PowerPoint-Dokument-Stream. Der aktuelle Benutzer-Stream enthält den aktuellen User-Atom, Benutzer, Version und Systemdaten enthält. Bilder-Stream enthält eingebettete Bilder, die aus den Containern Folie, die, denen Sie verwiesen werden in angezeigt werden. Die kleinste Einheit der Daten in diesem Format ist ein Datensatz.

Dateidaten werden sequenziell von Benutzerbearbeitungen gespeichert. Dies bedeutet, wenn Sie nur die aktuelle Version der Datei neu erstellen möchten, nur den Inhalt der letzte Benutzer bearbeiten und keine Daten vor dem extrahieren können. Ebenso können Sie frühere Versionen der Datei erhalten, indem Sie zur vorherigen Benutzerbearbeitungen im Stream.

Hinweis

Die empfohlene Vorgehensweise für die meisten Programmieraufgaben in Microsoft PowerPoint ist die Verwendung der PowerPoint Primary Interop Assemblies. Hierbei handelt es sich um einen Satz von.NET-Klassen, die ein vollständig neues Objektmodell zum Arbeiten mit Microsoft PowerPoint bereitstellen. Dieser Artikel-Reihe befasst sich nur mit erweiterten Szenarien, z. B. dem Microsoft PowerPoint nicht installiert ist.

Hauptkomponenten der MS-PPT-Datei-Format

Im folgenden werden die wichtigsten Strukturen von Interesse in PPT-Datei. Alle Strukturen befinden sich in der PowerPoint-Dokument-Stream, sofern nicht anders angegeben.

  • CurrentUserAtom

    Ein atom record, Informationen über den letzten Benutzer zum Ändern der Datei angibt, und dem jüngsten user edit befindet. Dies ist der einzige Eintrag in der CurrentUser stream.

  • UserEditAtom-Datensatz

    UserEditAtom-Datensatz umfasst unter anderem Zeiger auf den PersistDirectoryAtom-Datensatz für die aktuelle bearbeiten und zum vorherigen Datensatz UserEditAtom.

  • PersistDirectoryAtom-Datensatz

    PersistDirectoryAtom-Datensatz gibt ein Objektverzeichnis beibehalten, ist eine Tabelle der Persist-Objektkennungen und Stream-Offsets finden Sie auf Objekte dauerhaft gespeichert. Jeder Benutzer bearbeiten speichert ein Verzeichnis der Persist-Objekt, der angibt, wo Sie alle neuen und geänderten Persist-Objekte finden.

  • PersistDirectoryEntry-Struktur

    PersistDirectoryEntry-Strukturen sind Teil eines Datensatzes PersistDirectoryAtom und erhöht werden. Zum Beispiel: persistDirEntry[0], persistDirEntry[1]. Es gibt eine komprimierte Tabelle der sequenziellen Objektkennungen beibehalten und Stream-Offsets verknüpften Objekte dauerhaft gespeichert.

    Die ersten 20 Bits geben die ID der Persist-Objekt. Die nächsten 12 Bits geben die Anzahl der Persist-Offset-Einträge in der currentPersistDirectoryEntry-Struktur. Der Rest der PersistDirectoryEntry-Struktur besteht aus Offset Einträge, von denen jede mit 4 Bytes. Ist mehr als eine PersistOffsetEntry-Struktur, gilt jedes aufeinander folgenden Eintrag das Persist-Objekt zusammen mit der ID eines größer als die vorherigen.

  • DocumentContainer-Struktur

    Dies ist ein Container-Datensatz, der Informationen über das Dokument angibt. Es enthält Listen von Folien, Notizen, Sounds, grafische Elemente und andere Inhalte. Alle Gliederungstext für den aktuellen Bearbeitungsvorgang ist in der Liste Folie der DocumentContainer-Struktur gespeichert. Text in Shapes wird in Shapes-Datensätze gespeichert werden.

  • MainMasterContainer-Struktur

    Dies ist ein Container-Datensatz, der angibt, eine master-Folie. Die wichtigste Masterfolie definiert die Formatierung und einige Inhalte wie Grafiken für die Vorlage für eine Präsentationsfolie der.

  • SlideContainer-Struktur

    Dies ist der Container-Datensatz für eine Folie der Präsentation. Es umfasst Übergangseinstellungen, Kopf- und Fußzeileninformationen, Zeigern und Formatierung für grafische Elemente und eine SlideAtom-Struktur, die Platzhalter-Shapes verwendet in das Folienlayout angibt.

  • SlideListWithTextContainer-Struktur

    Eine SlideWithTextContainer-Struktur gibt eine Liste der SlideListWithTextSubContainerOrAtom-Datensätze, von die jede enthält Verweise auf Folien und Datensätze für die darin enthaltene Text.

  • TextCharsAtom-Struktur und der TextBytesAtom-Struktur

    Dies sind die zwei Arten von SlideListWithTextSubContainerOrAtom-Datensätze, die Textzeichen enthalten. Jedes enthält einen 8-Byte-Datensatz-Header, gefolgt von einer Reihe von Unicode oder partielle Unicode-Zeichen.

  • DrawingGroupContainer-Struktur

    Dies ist der Teil der DocumentContainer-Struktur, die Bilder, WordArt und anderen grafischen Inhalt angibt.

  • RecordHeader-Struktur

    Eine RecordHeader-Struktur ist eine 8-Byte-Struktur am Anfang jeder Container und Atom Datensatz der Datei. Es enthält vier Felder: recVer, recInstance, recType, und recLength. Die letzten beiden sind die interessantesten. Das Feld recType gibt den Typ des aktuellen Datensatzes, und das Feld recLen gibt die Länge in Bytes.

Extrahieren von Inhalten aus einer PowerPoint-Datei

Extrahieren von Inhalten aus einem PowerPoint-Dokument, die MS-PPT-Datei-Format verwendet, hängt von der Art der Inhalte, die Sie abrufen möchten, und in welchem Zustand. Können Sie den Text aus einer PPT-Datei mit einem oder zwei Seiten des Codes wahllos ergreifen, aber, die nicht die Formatierung, Grafiken, Übergänge oder sogar Folie Berandungen beibehalten. Sie konnte alle ClipArt-Objekte, z. B. mit einem ähnlichen Verfahren extrahieren zwar, die den Rahmen dieses Artikels sprengen. Um den Inhalt zu Folie erhalten, müssen Sie die aktuellen Änderungen zu identifizieren, indem Sie PersistDirectoryEntry Datensätze lesen.

Abrufen von Text aus PowerPoint-Dateien

Zum Abrufen von nur-Text aus einer PowerPoint-Präsentation

  1. Öffnen Sie den PowerPoint-Dokument-Stream.

  2. Für jeden Datensatz:

    1. Lesen Sie den Datensatz-Header.

    2. Wenn das Feld recTypeTextCharsAtom (0x0FA0) oder TextBytesAtom (0x0FA8) ist, lesen Sie den Rest des Datensatzes als Text.

Abrufen von Folien aus PowerPoint-Dateien

Theoretisch könnte eine PowerPoint-Folien mit den gleichen Ansatz als nur-Text abrufen rekonstruiert werden. Zum Beispiel durch Überprüfung Datensatzheader für RecType = SlideContainer/DocumentContainer/NotesContainer /, aber dies gibt eine willkürliche Sammlung von active Folien und veraltete Folien bei jedem Status Bearbeiten mit keine Möglichkeit, sie zu unterscheiden. Aber wenn Sie starten, indem Sie ein Verzeichnis der persist-Objekt erstellen, haben Sie Verweise auf alle aktuellen Inhalte und keine veraltete Inhalte.

Zum Abrufen von Folien und deren Inhalten aus PowerPoint-Dateien

  1. Erstellen Sie ein Verzeichnis der persist-Objekt.

    1. Erstellen Sie eine Datenstruktur, wie z. B. ein Wörterbuch, um zwei Spalten der verknüpften Daten aufzunehmen. Die erste Spalte ist für die Persist-Objekt-IDs, die zweite wird für die Offsets, in denen sie im Stream befinden.

    2. Gelesen Sie CurrentUserAtom-Struktur aus dem CurrentUser. Byte 16–19 der CurrentUserAtom-Struktur Geben Sie das Feld offsetToCurrentEdit.

    3. Öffnen Sie den PowerPoint-Dokument-Stream, und Lesen der UserEditAtom-Struktur aus der durch CurrentUserAtom.offsetToCurrentEdit-Feld angegebenen Offset. Byte 16–19 Geben Sie das Feld offsetLastEdit und Bytes 20-23 Geben Sie das Feld offsetPersistDirectory.

    4. Lesen Sie die PersistDirectoryAtom-Struktur aus der Offset vom Feld UserEditAtom.offsetPersistDirectory.

    5. Füllen Sie die Datenstruktur, die Sie mit der ID-Werte und Versätze jeder PersistDirectoryEntry-Struktur erstellt. Weisen Sie in Fällen, in denen eine PersistDirectoryEntry Struktur mehr als ein Offset hat jedem aufeinanderfolgenden Offset ID-Wert größer als die vorherige ID in der Tabelle eine.

    6. Wechseln Sie zu der Offset in der PowerPoint-Dokument-Stream vom Feld UserEditAtom.offsetLastEdit angegeben, und lesen die UserEditAtom-Struktur, die es startet.

    7. Wiederholen Sie die vorangegangenen drei Schritte, bis Sie Benutzerbearbeitungen laufen. Ignorieren Sie alle Verzeichniseinträge, deren ID-Konflikt mit vorhandenen ID-Werte in der Tabelle Werte, beibehalten werden, wie diese Folien darstellen, die überschrieben wurden.

  2. Überprüfen Sie über das Verzeichnis Persist-Objekt die Datensatzheader jedes angegebenen Offset gehen, und Lesen Sie jeden Datensatz vom Typ = RT_Document. Dies ist die DocumentContainer-Struktur.

  3. Suchen Sie innerhalb der Struktur DocumentContainer die Folie-Liste ein Datensatz mit rh.recType ist = RT_SlideListWithText. Dies ist ein SlideListWithTextContainer-Datensatz, ein Array von SlideListWithTextSubContainerOrAtom-Einträge enthält.

  4. Lesen Sie die Liste der Folie. Jede SlidePersistAtom-Struktur (Typ = Rh.RT_SlidePersistAtom) kommt, bevor Sie die Datensätze, die den Inhalt für diese Folie enthalten. Jeder Datensatz rh.recType = RT_TextCharsAtom oder rh.recType = RT_TextBytesAtom Text enthält.

  5. Für jede SlidePersistItem-Struktur in der Liste Folie Erstellen einer Folie mit dem entsprechenden Text Content.

Den gleichen Ansatz können Sie für andere Folieninhalte, wie z. B. Anmerkungen, Kopfzeilen und Fußzeilen und Formatierungsinformationen.

Rückgängig: Verlauf im MS-PPT-Format

Aufgrund der sequenziellen Natur von MS-PPT-Binärdateiformat können Sie frühere Versionen von PowerPoint Dateien einfach wiederherstellen.

Abrufen von frühere Versionen von PowerPoint-Datei

  1. Geladen Sie eine Kopie der Datei PowerPoint in den Arbeitsspeicher.

  2. Lesen Sie den CurrentUserAtom-Datensatz aus dem Stream CurrentUser aus der Kopie im Arbeitsspeicher.

  3. Lesen Sie in der PowerPoint-Dokument-Stream UserEditAtom-Struktur aus der durch CurrentUserAtom.offsetToCurrentEdit-Feld angegebenen Offset.

  4. Lesen Sie die vorherigen UserEditAtom-Struktur aus der Offset vom Feld UserEditAtom.offsetLastEdit.

  5. Löschen Sie alles nach den vorherigen UserEditAtom-Struktur.

  6. Aktualisieren Sie den Wert des Feldes CurrentUserAtom.offsetToCurrentEdit.

  7. Speichern Sie die Datei mithilfe eines Namens für die geänderte Datei. Um zum vorherigen Versionen gelangen, können Sie weiterhin backtracking, bis die richtige UserEditAtom-Struktur.

Schlussbemerkung

Dies ist nur eine Auswahl von MS-PPT-Format. Mit den Tools in diesem Artikel bereitgestellt wird sollte die einfache Datenwiederherstellung in Reichweite. Mit zusätzlichen Exploration können Medien wiederherstellen zu starten, Informationen und andere Metadaten Formatierung und schließlich bis arbeiten, um Vorgänge zu speichern.

Weitere Ressourcen

Weitere Informationen finden Sie in den folgenden Ressourcen:

Hinweis

Haftungsausschluss für maschinelle Übersetzungen: Dieser Artikel wurde mithilfe eines Computersystems und ohne jegliche Bearbeitung durch Personen übersetzt. Microsoft bietet solche maschinellen Übersetzungen als Hilfestellung für Benutzer ohne Englischkenntnisse an, damit Sie von den Informationen zu Produkten, Diensten und Technologien von Microsoft profitieren können. Da es sich bei diesem Artikel um eine maschinelle Übersetzung handelt, enthält er möglicherweise Fehler in Bezug auf (Fach-)Terminologie, Syntax und/oder Grammatik.