Share via


Grundlegendes zu Grafiken in Office-Binärdateiformaten (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: In diesem Artikel wird das Binärdateiformat MS-ODRAW beschrieben, auch bekannt als "OfficeArt", das zum Speichern von Zeichnungsobjekten in aktuellen und vorherigen Microsoft Office-Produkten verwendet wird bzw. wurde.

Letzte Änderung: Montag, 9. März 2015

Gilt für: Excel 2010 | Office 2007 | Office 2010 | Open XML | PowerPoint 2010 | SharePoint Server 2010 | VBA | Word 2010

Inhalt dieses Artikels
Was ist das MS-ODRAW-Dateiformat?
Strukturen im Format MS-ODRAW
Extrahieren von Grafiken aus einer Binärdatei
Schlussbemerkung
Weitere Ressourcen

Applies to:Microsoft Office

Zur Verfügung gestellt von:   Microsoft Corporation

Inhalt

  • Was ist das MS-ODRAW-Dateiformat?

  • Strukturen im Format MS-ODRAW

    • Zeichnung-Gruppe

    • Zeichnungen

    • Formen

      • Shape-Typen

      • Koordinaten und Gruppierung

    • Regeln

    • Bitmaps

    • Properties

  • Extrahieren von Grafiken aus einer Binärdatei

    • Formen und Formengruppen

    • Properties

    • Bitmaps

  • Schlussbemerkung

  • Weitere Ressourcen

Dieser Artikel beschreibt die Elemente des binären Dateiformat von MS-ODRAW und enthält Beispiele zum Extrahieren von ClipArt-Inhalten aus einer Binärdatei. Der Zweck dieses Artikels besteht darin, einige praktischen Aufgaben anzeigen, die Sie für Binärdateien ausführen können und Sie mit ein grundlegendes Verständnis des Formats ausstatten, die Sie in Weitere ausführliche Gefechte unterstützen. Dieser Artikel folgt eine Reihe von Artikeln, die die binären Dateiformaten einführen, die von Microsoft Office-Produkten verwendet werden. Diese Artikel sollen verwendet werden, zusammen mit der open file format specifications im Microsoft (MSDN):

Was ist das MS-ODRAW-Dateiformat?

[MS-ODRAW]: Office Drawing Binary File Format, auch bekannt als OfficeArt, ist eine binäre Dateiformat, das von Microsoft Office Anwendungen verwendet wird, um Zeichnungselemente, wie z. B. Bilder, Formen und WordArt-Objekt zu speichern und ihre zugeordneten Formatierung. Diese Elemente können in anderen Zeichnungen oder Diagramme, Diagramme, Tabellen und Steuerelemente enthalten sein oder als eigenständige Komponenten in der Datei angezeigt.

Das MS-ODRAW-Format speichert Zeichnungsobjekte in Dateien, die durch ein Host Programm, z. B. Microsoft Word erstellt werden. Die Erstellung von Objekten können gefunden werden, im Kontext eines Diagramms, Diagramm oder Tabelle, die im Format MS-OGRAPH definiert sind, die auch in einer Host-Datei gespeichert wird. Es sind keine MS-ODRAW-Dateien.

Dieses Format und die Dateiformate, die von Microsoft Word, Microsoft PowerPoint, Microsoft Excel und Microsoft Outlook sind alle dokumentiert, umfassend, in der MSDN-Bibliothek im folgenden Verzeichnis: Open Specifications/Data Portability/Microsoft Office File Formats/Microsoft Office File Format Documents. Von hier aus können Sie die vollständige Spezifikation für das Dateiformat, entweder direkt auf der MSDN-Website oder als PDF-Datei öffnen.

Strukturen im Format MS-ODRAW

Ein Zeichnungsobjekt besteht aus einer Reihe von Datensätzen, die andere Datensätze enthalten können. Ein Datensatz, der andere Datensätze enthält heißt ein Container, während ein Datensatz, der Daten ein Atomaufgerufen wird. Alle Datensätze Freigeben einer gemeinsamen Record Header, die Datensatztyp und Länge angibt. Der Datensatzheader hat auch Felder von Atom-Datensätze verwendet, um die Versions- und Instanzinformationen, zur Unterscheidung von anderen Atome in demselben Container angeben.

Da die Datensätze einer allgemeinen Headers gemeinsam nutzen, können Sie selektiv Datensätze analysieren, indem Sie nur die Felder recType und recLen der einzelnen Header lesen, bis der gewünschte Datensatz gefunden wird. Darüber hinaus können Sie definieren von benutzerdefinierten Datensatztypen, die gelten nur für Ihre Anwendung durch Erstellen von eindeutigen RecType-Werte, wie Host Anwendungen Zeichnungselemente in einem Dokument positioniert ist und zugeordneten Text rendern.

In den folgenden Abschnitten erläutern die Organisation der Objekthierarchie Container innerhalb eines Dokuments Host und beschreiben einige wichtigen Strukturen, die für verschiedene Arten von grafischen Elemente gelten. Wenn Sie ein Diagramm und eine zusätzliche Erläuterung der Objekthierarchie Container anzeigen möchten, finden Sie unter Abschnitt 1.3 Structure Overview (Synopsis) in der MS-ODRAW-Spezifikation.

Zeichnung-Gruppe

Jede Host-Datei, die Grafikelemente enthält enthält eine einzelne Gruppe Zeichnung, die alle Zeichnungen in der Datei hostet. Die Zeichnungen werden in einzelne Zeichnungsobjekte gespeichert, die nicht in die Zeichnung Gruppe selbst gespeichert sind, aber logisch zugeordnet sind. Die Zeichnung-Gruppe enthält eine Tabelle Property, der die Standardeinstellungen für neue Formen gespeichert sind, und eine Des Speichers, der alle statische Bilder enthält, die in der Datei verwendet werden. Einzelne Zeichnungen verweisen diese Bilder von einem zentralen Standort Duplizierung von Bilddaten zu reduzieren.

Die Gruppe der Zeichnung wird in einem Datensatz OfficeArtDggContainer angegeben.

Zeichnungen

Ein Zeichnungsobjekt stellt ein vollständiges grafisches Element innerhalb eines Host Dokument, z. B. einen Teil der ClipArt-Grafik, WordArt oder eine Gruppierung von Formen in ein Venn-Diagramm dar. Ein Zeichnungsobjekt enthält ein oder mehrere Shapes Objekte und eine Sammlung von Regeln, die auf alle Shapes in der Zeichnung anzuwenden.

Ein Zeichnungsobjekt wird durch ein OfficeArtDgContainer-Datensatz dargestellt. Es enthält einen gemeinsamen Datensatzheader und 16 Bytes an Daten in einer OfficeArtFDG Zeichnen aufzeichnen, um die Anzahl von Shapes in der Zeichnung und die ID des letzten Shapes in der Zeichnung anzugeben.

Ein Zeichnungsobjekt enthält außerdem eine Auflistung von Regeln für Connectors, Bögen und Legenden in der Zeichnung und vier verschiedene Sammlungen von Shapes, die entsprechend sortiert das Gruppieren von Formen und Löschung-Status, wie in der folgenden Tabelle dargestellt.

Sammlungen von Shapes in einer Zeichnung-Datensatz

Field

Eintragstyp

Beschreibung

deletedShapes

Ein Array von OfficeArtSpgrContainerFileBlock

Gelöschte Formen und Shape-Gruppen definiert.

groupShape

OfficeArtSpgrContainer

Definiert die Shape-Eigenschaften für die Form "Gruppe" und enthält alle Shapes in der Gruppe als Bytearray.

regroupItems

OfficeArtFRITContainer

Haltestatus gruppieren Bezeichner für Formen, die aufgehoben werden.

shape

OfficeArtSpContainer

Definiert die Standard-Shape-Eigenschaften für die aktuelle Zeichnung.

Formen

Die meisten in Microsoft Office Anwendungen erstellte Zeichnungen bestehen aus Shapes. Einzelne Formen haben Eigenschaften, die bestimmen den Shape-Typ, z. B. abgerundetes Rechteck oder Doppelpfeil, seine Beziehungen zu anderen Formen, Größe, Position und verschiedene Details dazu, wie Sie, wie z. B. Linienart und Füllbereich gerendert wird. Ein einzelnes Shape wird in einem OfficeArtSpContainer-Datensatz definiert.

Shape-Typen

Alle OfficeArt-Shape-Typen werden in der MSOSPT-Enumeration aufgeführt. Innerhalb der OfficeArtSpContainer-Datensatz, der eine Form definiert, befindet sich ein shapeProp-Attribut, das eine OfficeArtFSP-Datensatz ist. Das Feld recInstance der OfficeArtFSP-Datensatz-Header enthält ein MSOSPT-Enumerationswert, der den Typ der Form festgelegt. Das folgende Diagramm zeigt, wie ein vierzackiger Stern in der Containerhierarchie definiert ist.

Diagramm mit Formtypen in der Containerhierarchie

Koordinaten und Gruppierung

Koordinaten und Gruppierung sind eng verbunden, da seinen Status Gruppierung wie positioniert und die Größe eines Shapes abhängt. Alle Shapes in einer Zeichnung sind Teil einer Gruppe der obersten Ebene-Shape, das in einem OfficeArtSpgrContainer-Datensatz definiert ist. Innerhalb einer Formgruppe wird eine Core-Form, welche anderen Shapes verankert sind, die die Form "Gruppe"genannt. Diese Form wird nicht angezeigt. Auf oberster Ebene der Shape-Gruppe ist auf der Client-UI-Oberfläche durch das clientAnchor-Attribut des OfficeArtSpContainer-Datensatz positioniert, der Form "Gruppe" definiert. Die ClientAnchor ist ein OfficeArtClientAnchor-Datensatz, der von der Clientanwendung definiert ist.

Position und Größe relativ zur Verankerung Client werden durch Gruppieren bestimmt. Eine einfache Form wird als ein direktes untergeordnetes Element der Gruppe der obersten Ebene-Shape definiert, wohingegen Formen, die mit anderen Formen in der Benutzeroberfläche gruppiert wurden eine untergeordnete Shape-Gruppe geworden. Wie mit der Gruppe der obersten Ebene eine untergeordnete Shape-Gruppe in einem Datensatz OfficeArtSpgrContainer, die den OfficeArtSpContainer-Datensatz einschließt, der die Form in einer OfficeArtSpgrContainerFileBlock-Datensatz definiert definiert ist. Die Größe und Position der Form "Gruppe" werden durch die OfficeArtSpContainer.shapeGroup-Eigenschaft definiert, die ein OfficeArtFSPGR-Datensatz ist. Die Koordinaten der einzelnen untergeordneten Shapes sind durch seine OfficeArtSpContainer.childAnchor-Eigenschaft definiert, die ein OfficeArtChildAnchor-Datensatz ist.

Das folgende Beispiel zeigt zwei ähnliche Formen.

Windrose

Windrose

Vierzackiger Stern

Vierzackiger Stern

Die Compass rose besteht aus zwei Formen von Diamond,Vertikaler Diamand und Horizontaler Diamand, zusammengefasst, während der vierzackiger Stern eine einfache Form und nicht Teil einer untergeordneten Gruppe ist.

In der Compass rose der Benutzer vertikaler Diamond Erstens erstellt dann die horizontale Raute über dem festgelegten und zusammengefasst werden. Dadurch gelangt man in einem untergeordneten Gruppen-Shape mit den zwei Karo als untergeordnete Formen. Das folgende Diagramm zeigt, wo die zwei Rauten in der Zeichnung Containerhierarchie angezeigt werden, und wo sich ihrer jeweiligen Koordinaten sind.

Diagramm mit Zeichnungscontainern

Die Koordinaten für die Form "Gruppe" befinden sich im .shapegroup -Attribut. Die zweite und dritte Shapes im Array, wird von untergeordneten Formen behalten ihre Koordinaten in ihrer jeweiligen .childAnchor Attribute. Alle zusätzlichen Formen, die zu dieser Gruppe hinzugefügt würden auch ihre Koordinaten im Attribut .childanchor speichern.

Der vierzackiger Stern aus dem vorherigen Bild als eine einzelne Form erstellt wurde, und wird als ein direktes untergeordnetes Element des Shapes Gruppe der obersten Ebene gespeichert, wie im folgenden Diagramm dargestellt:

Containerhierarchie für eine einfache Form

Regeln

In einer einzigen Zeichnung können Sie Regeln definieren, Connectors, Bögen und Legenden. Jede OfficeArtDgContainer-Zeichnungsobjekt in eine Datei enthält eine OfficeArtSolverContainer-Instanz, die ein Array von OfficeArtSolverContainerFileBlock-Datensätze enthält jeweils eine OfficeArtFConnectorRule, ein OfficeArtFArcRule oder ein OfficeArtFCalloutRule sein kann.

Ein OfficeArtFConnectorRule-Datensatz definiert einen Connector gemäss welche, dem Shapes, Verbindung, z. B. in einem Flussdiagramm und an welchem Punkt auf dem Shape um verankert. Connector-Regeln werden die wichtigsten von Interesse. Legende und Arc-Regeln bieten nur die ID des der Legende oder Bogen, die sie auf anwenden und keine zusätzlichen Informationen.

Ein Beispiel für eine OfficeArtSolverContainer mit Connector-Regeln finden Sie in der Dokumentation zu MS-ODRAW 3.1.5 OfficeArtSolverContainer.

Bitmaps

Das MS-ODRAW-Format bezeichnet Bitmap-Bilder als Binäre große Bilder oder Bilder (BLIPs). Bitmaps in einem Dokument Microsoft Office werden zentral in BLIP speichern, gespeichert, die ein OfficeArtBStoreContainer-Datensatz in der obersten Ebene zeichnen Gruppe ist. Der BLIP-Speicher enthält ein Array von OfficeArtBStoreContainerFileBlock-Datensätze. Geben Sie im Datensatz-Header des Informationsspeichers BLIP die Felder recInstance und recLen die Anzahl der Datensätze für OfficeArtBStoreContainerFileBlock und die Summe von ihrer Größe in Bytes.

Jeder OfficeArtBStoreContainerFileBlock-Datensatz enthält entweder ein OfficeArtFBSE oder bare OfficeArtBlip Datensatz, wie durch die type im Feld von Datensatz-Header angegeben. Ein OfficeArtFBSE-Datensatz erstellt einen Wrapper für einen Datensatz OfficeArtBlip Name, Größe, Typ und Offset-Informationen. Ein OfficeArtBlip-Datensatz enthält einen Datensatz-Header und die tatsächliche Bit-Stream des Bildes.

Das folgende Diagramm zeigt den Speicherort der binäre Bilddaten in der Containerhierarchie.

Diagramm zur Darstellung des Speicherortes von Bilddaten

Properties

Eigenschaften definieren Formen und Bitmaps. Das MS-ODRAW-Format speichert Eigenschaften in der Eigenschaft Tabellen. Jede Form hat die Eigenschaft Tabellen für Eigenschaften, die nur für dieses Shape gilt, bestehend aus einer OfficeArtFOPT-Datensatz, ein OfficeArtSecondaryFOPT-Datensatz und eine OfficeArtTertiaryFOPT-Datensatz. In den Datensatznamen bedeutet "PT" "Eigenschaftentabelle." Darüber hinaus enthält die Gruppe der obersten Ebene Zeichnen einer Eigenschaftentabelle an Eigenschaften, die über die Datei zu halten, die nur aus einem OfficeArtFOPT und einem OfficeArtTertiaryFOPT-Datensatz besteht. In der obersten Ebene zeichnen Gruppe definierte Eigenschaften werden als Standardwerte für Eigenschaften, die nicht von einzelnen Shapes definiert werden, aber einzelne Shape-Eigenschaften gesetzt werden, sie die Standardwerte überschreiben verwendet. In beiden Speicherorten nicht festgelegten Eigenschaften zurückgesetzt auf System- oder Standardwerte. Datensatz-Header für jede Tabelle-Eigenschaft gibt die Anzahl der Eigenschaften und die Länge in Bytes des Datensatzes.

Innerhalb einer OfficeArtFOPT, OfficeArtSecondaryFOPT oder OfficeArtTertiaryFOPT ist Datensatz ein Array von kategorisierten OfficeArtRGFOPTE Datensätze, von denen jede eine Gruppe verwandter Eigenschaften darstellt. Klicken Sie in den Datensatznamen "Rg" bedeutet "Zugehörige Gruppe" und "Pte" bedeutet "Tabelle Eigenschafteneintrag." Die einzelnen Eigenschaften werden als OfficeArtFOPTE-Datensätze gespeichert werden. Diese Datensätze verfügen nicht über einen Datensatzheader, sondern beginnen mit einem opid-Feld, das Headerinformationen für die Eigenschaft angibt. Die Opid wird als ein OfficeArtFOPTEOPID-Eintrag gespeichert. Wenn das letzte Bit eines OfficeArtFOPTEOPID-Datensatzes im Feld fComplex gleich 0 x 1 ist, ist die Eigenschaft einer komplexen Eigenschaft. In diesem Fall wird die Informationen, die die 4-Byte-Grenze eines Datensatzes OfficeArtFOPTE überschreitet Abschnitt complexData der übergeordneten OfficeArtRGFOPTE Tabelle verschoben.

Extrahieren von Grafiken aus einer Binärdatei

Verfahren zum Extrahieren von ClipArt aus Microsoft Office Binärdateien hängt teilweise auf die Arten von Grafiken zu extrahieren und teilweise auf die Host-Anwendung. Der folgenden Tabelle werden die Strukturen Host Zeichnungen und Zeichnung Gruppen in verschiedenen Microsoft Office binären Dateiformaten.

Zeichnen Lagerplätze Gruppieren von Hostanwendung

Host-Anwendung

Strukturen, die Zeichnungen enthalten.

Strukturen, die Zeichnung Gruppen enthalten.

Microsoft Excel

HFPicture, MsoDrawing

HFPicture, MsoDrawingGroup

Microsoft PowerPoint

DrawingContainer

DrawingGroupContainer

Microsoft Word

OfficeArtWordDrawing

OfficeArtContent

Die folgenden Verfahren zeigen, wie MS-ODRAW-Inhalt aus einer Anwendung Host zu extrahieren, ohne etwas anwendungsspezifische im Allgemeinen.

Datensatzheader

Alle Datensatzheader im Format MS-ODRAW sind 8 Bytes lang und Null indiziert. Z. B. das dritte Byte 2 Byte ist, und das letzte Byte ist Byte 7. 1-2-3 Bytes geben den Datensatztyp aus, und die letzten 4 Bytes enthalten die Datensatzlänge in Bytes. Wenn Sie den Typ und die Länge des Datensatzes kennen, können Sie sich dafür entscheiden, entweder die Anzahl der gelesenen Bytes in die Datensatzlänge festgelegten oder überspringen die gleiche Anzahl von Bytes und fahren Sie mit dem nächsten Datensatz.

Formen und Formengruppen

Die folgenden Verfahren zeigen, wie einfache Formen und Formengruppen in Microsoft Office Dokumente zu rekonstruieren. Dies beinhaltet keine Connectors oder Legenden, die angegeben werden, in Solver-Container oder Diagramme und Grafiken, die das MS-OGRAPH-Format verwenden. Diese Verfahren auch nicht Geben Sie die genaue Position der Form oder des Formgruppe im Clientdokument noch enthalten sie rückgängig Verlauf oder Revision-History-Optionen.

Rekonstruiert eine Formgruppe oder solo-Shape im Format MS-ODRAW

  1. Suchen Sie den OfficeArtDgContainer-Datensatz in der Datei für die Zeichnung, die die betreffende Shape-Gruppe enthält, oder durch alle Zeichnungen durchlaufen Sie, bis Sie diejenige gefunden haben, die Ihren Kriterien entspricht.

    Lesen Sie den Datensatz-Header, um die Anzahl der Bytes am Ende der Zeichnung zu erhalten.

  2. Jeder Datensatzheader im Container überprüfen, bis Sie eine gefunden, in dem Datensatztyp = OfficeArtSpgrContainer (0xf003). Wenn kein OfficeArtSpgrContainer-Datensatz vorhanden ist, befinden sich keine Shapes in der Zeichnung.

  3. Der OfficeArtSpgrContainer-Datensatz repräsentiert das .groupshape-Feld. Dieser Datensatz enthält die aktiven Shapes in der Zeichnung als ein Array von OfficeArtSpgrContainerFileBlock-Datensätze.

    Lesen Sie den Datensatz-Header, um die Länge des Containers abzurufen und das anschließende Starten Sie des ersten Datensatzes für die OfficeArtSpgrContainerFileBlock lesen. Da dies der erste Datensatz der OfficeArtSpgrContainerFileBlock im Array ist, muss es einen OfficeArtSpContainer-Datensatz enthalten die Form "Gruppe" für die aktuelle Gruppe entsprechen müssen.

  4. Lesen Sie den OfficeArtSpContainer-Datensatz, wie beschrieben in der nächsten Prozedur "um eine einzelne Form in das MS-ODRAW-Format zu rekonstruieren."

  5. Lesen den nächsten Datensatz zu OfficeArtSpgrContainerFileBlock, beginnend mit dem Datensatzheader zu beginnen.

  6. Wenn .rectype = 0xF004, der Rest der aktuellen Datei Block ist ein OfficeArtSpContainer-Datensatz. Lesen Sie den Datensatz, wie beschrieben in der nächsten Prozedur "um eine einzelne Form in das MS-ODRAW-Format zu rekonstruieren."

    Wenn .rectype = 0xF003, der Rest der aktuellen Datei Block ist ein OfficeArtSpgrContainer-Datensatz, die eine untergeordnete Shape-Gruppe darstellt. Lesen Sie den Datensatz, wie in den vorherigen drei Schritten beschrieben.

  7. Lesen Sie die verbleibenden OfficeArtSpgrContainerFileBlock-Datensätze auf die gleiche Weise.

  8. Suchen Sie die OfficeArtDggContainer, die die Zeichnung Gruppe für die Datei darstellt.

  9. Suchen Sie innerhalb der OfficeArtDggContainer-Eigenschaft geben Sie Tabellen, indem Sie jeden Datensatz Header, lesen die Datensätze der OfficeArtFOPT und OfficeArtTertiaryFOPT und das Überspringen des Rest.

  10. Diese Eigenschaft Tabellen stellen Standardeigenschaften dar, über die Datei. Alysieren Sie die Eigenschaft als vor dem Tabellen an, gelten Sie jedoch Eigenschaften aus diesen Tabellen nur für Shapes, die bereits nicht die entsprechende Eigenschaft festlegen.

  11. Die Shape-Gruppe in Ihrer Anwendung entsprechend der gesammelten Informationen zu rendern.

Um eine einzelne Form innerhalb einer Formgruppe zu rekonstruieren.

  • Beginnend mit einem OfficeArtSPContainer-Datensatz Datensatz-Header für jeden Datensatz innerhalb des Containers zu lesen und weiterhin wie folgt:

    1. Wenn Datensatztyp = OfficeArtFSPGR (0xF009), und dies ist die erste Form in der Zeichnung, und daher die Form "Gruppe", den Datensatz darstellt, das Feld ".shapeGroup". Überspringen Sie Datensatz-Header zu und gelesen Sie die verbleibenden 16 Bytes in den Speicher, als vier 4-Byte-Ganzzahlen mit Vorzeichen, die die Links, oben, rechts und unteren Koordinaten der Gruppe auf oberster Ebene Form zu geben.

    2. Wenn Datensatztyp = OfficeArtChildAnchor (0xF00F), und die aktuelle Form ist nicht die Form "Gruppe", den Datensatz darstellt, das Feld ".childAnchor". Überspringen Sie Datensatz-Header zu und gelesen Sie die verbleibenden 16 Bytes in den Speicher als vier Ganzzahlwerte mit Vorzeichen, die angeben, die Links, oben, rechts und unteren Koordinaten der aktuellen Form in Bezug auf ihre übergeordnete Form "Gruppe".

    3. Wenn Datensatztyp = OfficeArtFSP (0xF00A), den Datensatz stellt das .shapeprop-Feld, das 16 Byte lang ist. Gelesen Sie den Datensatz wird in den Speicher. Bits 4 bis 15 Geben Sie einen MSOSPT-Enumerationswert, der den Shape-Typ definiert. Bits 101 und 102 angeben, wenn die Form von der Standardausrichtung horizontal oder vertikal gekippt wird.

    4. Wenn Datensatztyp = OfficeArtFOPT (0xF00B), OfficeArtSecondaryFOPT (0xF121) oder OfficeArtTertiaryFOPT (0xF122), der Datensatz ist eine Tabelle Property. Alysieren Sie die Eigenschaften wie beschrieben in der nächsten Prozedur "So legen Sie Eigenschaften im Format MS-ODRAW analysiert werden. an"

    5. Alle anderen Datensätzen zu überspringen.

Properties

Analysieren Sie die Eigenschaften im Format MS-ODRAW

  1. Beginnend mit einer Property-Tabelle, wie z. B. einen Datensatz OfficeArtFOPT beginnen Sie lesen das erste Mitglied der .fopt-Array, das Eigenschaftsgruppen OfficeArtRGFOPTE besteht. Jede Gruppe stellt eine Kategorie von Eigenschaften in der Eigenschaftentabelle.

  2. Lesen die erste Gruppe von OfficeArtRGFOPTE zu beginnen. OfficeArtRGFOPTE-Datensätze haben keinen Datensatzheader, sondern beginnen mit dem ersten Element des Arrays .rgfopte, das OfficeArtFOPTE-Datensätze enthält.

  3. Jeder Datensatz OfficeArtFOPTE stellt eine einzelne Eigenschaft dar. Lesen Sie das .opid 2-Byte-Feld, das in den Speicher ein OfficeArtFOPTEOPID-Datensatz ist.

    Lesen Sie die ersten 14 Bits den Bezeichner der Eigenschaft als Ganzzahl ohne Vorzeichen. Um welche ganzzahligen Werte, welche Eigenschaften entsprechen zu suchen, finden Sie in die Eigenschaftenliste in section 2.3 der MS-ODRAW-Spezifikation.

    Das letzte Bit ist 1, Mittel festgelegt, dass es eine komplexe Eigenschaft.

  4. Lesen das verbleibenden 4-Byte-.op-Feld des aktuellen Datensatzes OfficeArtFOPTE als Ganzzahl mit Vorzeichen, die den Wert für die Eigenschaft angibt, oder wenn die Eigenschaft komplex ist, ist die Anzahl der Bytes komplexer Daten, die den Wert enthalten soll.

  5. Lesen Sie die verbleibenden Einträge im .rgfopte-Array auf die gleiche Weise.

  6. Hinter dem letzten Datensatz der OfficeArtFOPTE lesen Sie die komplexen Daten. Komplexen Daten, die in derselben Reihenfolge wie die Eigenschaften des Arrays, in die Größenangaben in ihre .op-Felder wird angezeigt.

  7. Lesen Sie die verbleibenden OfficeArtRGFOPTE Eigenschaftsgruppen in der gleichen Weise wie in den vorherigen Schritten bis zum Abschluss der Eigenschaftentabelle.

Bitmaps

Zum Extrahieren von Bitmap-Bilder im Format MS-ODRAW

  1. Suchen Sie nach den OfficeArtDggContainer-Datensatz für die Datei.

  2. Lesen Sie den Datensatz-Header, um die Länge des Containers abzurufen.

  3. Überprüfen Sie den Datensatz-Header für jeden Datensatz innerhalb des Containers, bis finden Sie einen Datensatz des OfficeArtBStoreContainer (0xF001), der das .blipstore-Feld darstellt, oder das Ende der OfficeArtDggContainer zu erreichen. Wenn es kein OfficeArtBStoreContainer-Datensatz, die keine Bitmaps ist zu extrahieren sind.

  4. Der OfficeArtBStoreContainer-Datensatz enthält alle für die Bitmap für die Datei in ein Array von OfficeArtBStoreContainerFileBlock-Datensätze. Lesen Sie den Datensatzheader.

    4-15 Bits handelt es sich um eine Ganzzahl ohne Vorzeichen, die die Länge des Arrays angibt.

  5. Führen Sie für jeden Datensatz der OfficeArtBStoreContainerFileBlock im Array folgende Schritte aus.

    1. Lesen Sie die Bytes 1-2-3 des Datensatz-Header, um den Datensatztyp zu erhalten.

    2. Wenn Datensatztyp = 0xF018-0xF117, der Datensatz ist ein OfficeArtBlip. Fahren Sie mit der nächsten Schritt in diesem Verfahren.

      Wenn Datensatztyp = 0xF007, der Datensatz ist ein OfficeArtFBSE. Führen Sie die folgenden:

      1. Überspringen Sie den ersten 20 Byte.

      2. Lesen Sie die nächsten 4 Bytes, die die Größe der Bitmap als Ganzzahl ohne Vorzeichen zu geben.

      3. Überspringen Sie den nächsten 12 Byte.

      4. Lesen Sie das .name-Feld, das eine Zeichenfolge mit variabler Länge Null endende Unicode entspricht, die den Namen der Bitmap angibt.

        Das nächste Feld ist .embeddedblip, die ein OfficeArtBlip-Datensatz ist.

    3. Lesen Sie den Datensatz-Header des Datensatzes OfficeArtBlip. 1-2-3 Bytes angeben, dass der Dateityp des Bildes hätte, wenn es separat gespeichert wurden. Die letzten 4 Bytes des Datensatz-Header Geben Sie die Länge der Rest des Datensatzes. Weitere Informationen darüber, welcher Werte welche Dateitypen entsprechen, finden Sie unter section 2.2.23 der MS-OGRAPH-Spezifikation.

    4. Den Rest des Datensatzes in den Speicher gelesen und als Datensatz-Header angegebenen Dateityp speichern.

  6. Lesen den nächsten Datensatz der OfficeArtBStoreContainerFileBlock beginnen und auf dieselbe Weise fortgesetzt werden, bis alle die Bitmaps verarbeitet werden.

Schlussbemerkung

Änderungen an alle Microsoft Office-Binärdatei muss beim Lesen der Datei in eine interne Darstellung, bearbeiten die Darstellung und die Datei dann erneut zu schreiben. Aufgrund von diesen Anforderungen Speichervorgänge erfordern Sie ein gründliches Verständnis der Dateiformate beteiligt sind, das den Rahmen dieses Artikels überschreiten. In diesem Artikel und den entsprechenden Artikeln in der Serie bieten die Schritte und Informationen zur einfache Extraktionen durchzuführen und ein besseres Verständnis der MS-ODRAW-Format zu erleichtern.

Insbesondere kann die Grundkenntnisse der MS-ODRAW-Format Verbessern der Produktionsstätte mit den anderen Microsoft Office binären Dateiformaten ermöglicht es Ihnen, zu identifizieren und Analysieren von Zeichnungsobjekten und Bitmaps wie in Microsoft Office-Binärdateien treten.

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.