Общие сведения о рисунках в двоичных форматах файлов Office (машинный перевод)
Данная статья переведена с помощью машинного перевода, см. Отказ от ответственности. Используйте английский вариант этой статьи, который находится здесь (Возможно, на английском языке), в качестве справочного материала.
Аннотация. В этой статье описывается двоичный формат файлов MS-ODRAW, известный также как OfficeArt, используемый для хранения графических объектов в текущей и предыдущих версиях продуктов Microsoft Office.
Дата последнего изменения: 9 марта 2015 г.
Применимо к: Excel 2010 | Office 2007 | Office 2010 | Open XML | PowerPoint 2010 | SharePoint Server 2010 | VBA | Word 2010
В этой статье Что такое формат файла MS-ODRAW? Структуры в формате MS-ODRAW Извлечение изображения из двоичного файла Заключение Дополнительные ресурсы
Applies to:Microsoft Office
По: Корпорация Майкрософт
Содержание
Что такое формат файла MS-ODRAW?
Структуры в формате MS-ODRAW
Координаты и группирования
Извлечение изображения из двоичного файла
Фигуры и группы фигур
В данной статье описываются элементы в формате двоичного файла MS-ODRAW и приведены примеры того, как извлекать содержимое картинки из двоичного файла. Целью данной статьи является Показать некоторые практические задачи, которые можно выполнять на двоичные файлы, а также необходимо предоставить основные сведения о формате, который поможет вам более подробные исследования. В этой статье за серию статей, которые вводят двоичных форматов файлов, которые используются в продуктах Microsoft Office. Эти статьи предназначены для использования вместе с open file format specifications в Microsoft MSDN:
Что такое формат файла MS-ODRAW?
[MS-ODRAW]: Office Drawing Binary File Format, также известный как OfficeArt, — это двоичный формат файла, используемый приложениями Microsoft Office для хранения графических элементов, таких как рисунки, фигуры и объекты WordArt, и связанное форматирование. Эти элементы могут содержаться в других графических объектов или диаграмм, схем, таблиц и элементов управления, или может отображаться как автономные компоненты в файл.
Формат MS-ODRAW хранит графических объектов в файлы, создаваемые программой узла, такие как Microsoft Word. Эти графические объекты можно найти в контексте диаграммы, диаграммы или таблицы, которая определяется формат MS-OGRAPH, который хранится в файле узла. Нет файлов MS-ODRAW.
Этот формат и форматы файлов, используемые Microsoft Word, Microsoft PowerPoint, Microsoft Excel и Microsoft Outlook задокументированы, исчерпывающим образом, в библиотеке MSDN по следующему пути: Open Specifications/Data Portability/Microsoft Office File Formats/Microsoft Office File Format Documents. Из этого места можно открыть полную спецификацию формата файла, либо непосредственно на веб-узле MSDN, либо в формате PDF.
Структуры в формате MS-ODRAW
Графический объект состоит из ряда записей, которые могут содержать другие записи. Запись, которая содержит другие записи называется контейнера, в то время как запись, которая содержит данные, называется atom. Все записи совместно использовать общие Record Header, который указывает тип записи и длины. Заголовок записи также имеет поля, используемые записи atom для определения версии и экземпляр, чтобы отличить от других атомов в одном контейнере.
Поскольку записи совместно используют общий заголовок, можно выборочно синтаксический анализ записей путем считывания только поля заголовка каждой recType и recLen, пока не будет найдена нужная запись. Кроме того можно определить типы пользовательских записей, которые применяются только к приложению путем создания recType уникальных значений, который является как хост-приложения размещения графических элементов в документе и отрисовки связанного текста.
В следующих разделах объясняется организационной иерархии контейнеров объектов внутри узла документа и описания некоторых ключевых структур, которые применяются для различных типов графических элементов. Схема и дополнительных пояснений в иерархии объектов контейнера, представлен 1.3 Structure Overview (Synopsis) раздел в спецификации MS-ODRAW.
Рисование группыКаждый файл узла, содержащего графические элементы содержит одну Группу Рисование, включающий все рисунки в файле. Рисунки хранятся в отдельных графических объектов, которые не хранятся в самой группе рисования, но логически связанные с ним. Рисование группа содержит Свойство таблицы, которая хранит параметры по умолчанию для новых фигур и BLIP хранилище, в котором содержатся все статические изображения, используемые в файле. Отдельные рисунки ссылаться на эти изображения из центральной точки для сокращения дублирования данных изображения.
В записи OfficeArtDggContainer указана группа рисование.
РисункиГрафический объект представляет полный графический элемент внутри узла документа, таких как часть картинки, объекты WordArt или Группирование фигур в диаграмму Венна. Графический объект будет содержать одну или несколько фигур объекты и коллекции правил, которые применяются для всех фигур в документе.
Запись OfficeArtDgContainer соответствует графического объекта. Содержит общие записи заголовка и записи графических данных в OfficeArtFDG на 16 байт для указания числа фигур в документе и идентификатор последней фигуры в документе.
Графический объект также содержит набор правил, которые применяются к соединительные линии, дуги и выноски в рисунок и четырьмя различными коллекциями фигур, упорядоченный в соответствии Группирование фигур и удаления состояния, как показано в следующей таблице.
Коллекции фигур в записи Рисование
Определяет удаленные фигур и группы фигур.
Определяет свойства фигуры для фигуры группы и содержит все фигуры в группе как массив.
Содержит группы идентификаторов для фигур, которые без группировки.
Определяет свойства фигуры по умолчанию для текущего документа.
ФигурыБольшинство графических объектов, созданных в приложениях, Microsoft Office состоят из фигур. Отдельные фигуры имеют свойства, которые определяют тип фигуры, такие как прямоугольник со скругленными углами или двойной стрелки, ее связи с другими фигурами, размер, положение и содержатся сведения об их обработке, такие как линии и заливки. В записи OfficeArtSpContainer определены отдельные фигуры.
Типы фигурВсе типы фигуры OfficeArt, перечислены в перечислении MSOSPT. Внутри OfficeArtSpContainer запись, которая определяет фигуры есть атрибут shapeProp, являющийся записью OfficeArtFSP. Поле recInstance OfficeArtFSP запись заголовка содержит значение перечисления MSOSPT, которое задает тип фигуры. Следующая диаграмма показывает, как определяется Четырехконечная звезда в иерархии контейнеров.
Координаты и группированияКоординаты и группировки знает о установлено, поскольку как положения и размера фигуры зависит от состояния группировки. Все фигуры в рисунке, входящего в группу фигуры верхнего уровня, который задается в записи OfficeArtSpgrContainer. В группу фигур есть основные фигуры, какие другие фигуры, привязанный к, называемый групповой фигуры. Эта форма не отображается. Группа фигуры верхнего уровня находится на поверхность пользовательского Интерфейса клиента с помощью атрибута clientAnchor OfficeArtSpContainer записи, которая определяет группу фигур. ClientAnchor — это запись OfficeArtClientAnchor, который определен в клиентском приложении.
Положение и размер относительно точки привязки клиента определяются группировки. Простые фигуры определяется как прямых дочерних групп фигуры верхнего уровня, в то время как фигуры, которые были сгруппированы с другими фигурами в пользовательском Интерфейсе становится группой объектов, подчиненных фигур. Как с помощью группы верхнего уровня группу подчиненных фигур определяется в записи OfficeArtSpgrContainer, который служит оболочкой для записи OfficeArtSpContainer, которая определяет форму записи OfficeArtSpgrContainerFileBlock. Размер и расположение фигуры группы определяются свойством OfficeArtSpContainer.shapeGroup запись OfficeArtFSPGR. Координаты каждой фигуры дочерних определяются его свойство OfficeArtSpContainer.childAnchor, которая представляет запись OfficeArtChildAnchor.
В следующем примере показано два вида фигуры.
Компас роза состоит из двух фигур ромб и , группируются вместе, тогда как Четырехконечная звезда представляет собой простую форму и не является частью подчиненного группы.
В роза компас пользователь создал вертикальной ромб во-первых и затем положить горизонтальной ромб над ним и сгруппировать их вместе. Это помещает их в фигуры Подчиненный группы, с двумя ромбами как дочерние формы. Следующая диаграмма показывает, где два ромбами рисования иерархии контейнеров, и где найти их соответствующих координат.
Координаты для фигуры группы находятся в атрибуте .shapegroup . Во втором и третьем фигур в массиве, фигуры потомков, следует их координатами своих законных .childAnchor атрибуты. Дополнительные фигуры, добавляемые к этой группе также будет хранить их координаты в атрибуте .childanchor .
Четырехконечная звезда из предыдущего рисунка был создан в одну фигуру и хранится в виде прямых дочерних фигуры верхнего уровня группы, как показано на следующей схеме:
правила;В одном документе правила определяют соединительные линии, дуги и выноски. Каждый графический объект OfficeArtDgContainer в файле содержит экземпляр OfficeArtSolverContainer, который содержит массив записей OfficeArtSolverContainerFileBlock, каждый из которых может быть OfficeArtFConnectorRule, OfficeArtFArcRule или OfficeArtFCalloutRule.
Запись OfficeArtFConnectorRule определяет соединитель, согласно которой фигур он подключается к, такие, как в блок-схему и в какой точке фигуры он привязывается к. Разъем правила, основные правила интерес. Выноска правил и правил arc только предоставить идентификатор выноски или дуги, они применяются к и дополнительные сведения отсутствуют.
Пример OfficeArtSolverContainer с правилами разъемов содержатся в разделе 3.1.5 OfficeArtSolverContainer в документации MS-ODRAW.
Растровые изображенияФормат MS-ODRAW называют растровых изображений двоичных больших изображений или изображений (простые звуковые сигналы). Растровые изображения в документе Microsoft Office хранятся централизованно в BLIP хранения, который является запись OfficeArtBStoreContainer в графических группы верхнего уровня. BLIP хранилище содержит массив OfficeArtBStoreContainerFileBlock записей. В заголовок записи в хранилище BLIP recInstance и recLen поля укажите всего их размера в байтах и число записей OfficeArtBStoreContainerFileBlock.
Каждая запись OfficeArtBStoreContainerFileBlock содержит запись OfficeArtFBSE или запись исходного состояния OfficeArtBlip, как указано в поле type его заголовок записи. Запись OfficeArtFBSE перенос записи OfficeArtBlip в имени, размера, типа и сведения о смещении. Запись OfficeArtBlip содержит запись заголовка и поток фактической битов изображения.
Следующая диаграмма показывает расположение двоичных данных в иерархии контейнеров.
PropertiesСвойства определяют фигур и рисунков. Формат MS-ODRAW сохраняет свойства в таблицах свойств. Каждая фигура имеет свойство таблицы для свойств, которые применяются только к фигуры, состоящий из записи OfficeArtFOPT, запись OfficeArtSecondaryFOPT и записи OfficeArtTertiaryFOPT. В именах запись «ПТ» означает «Свойства таблицы». Кроме того верхнего уровня рисования группа содержит таблицу свойств, свойства, применяемые через файл, который содержит только запись OfficeArtFOPT и записи OfficeArtTertiaryFOPT. Свойства, определенные в графических группы верхнего уровня, используются значения по умолчанию для свойства не определен, отдельных фигур, но там, где задаются свойства отдельных фигур, они переопределяют значения по умолчанию. Свойства не задано в любом месте восстановить состояние системы или приложения по умолчанию. Запись заголовка для каждой таблицы свойств указывает число свойств и длина в байтах записи.
OfficeArtFOPT, OfficeArtSecondaryFOPT или OfficeArtTertiaryFOPT запись представляет собой массив записей по категориям OfficeArtRGFOPTE, каждый из которых представляет группу связанных свойств. В именах запись «rg» означает «Связанной группы» и «pte» означает «Операция таблицы свойств». Отдельные свойства хранятся в виде OfficeArtFOPTE записей. Эти записи имеют заголовок записи, но начинается с полем opid, который указывает сведения заголовка для свойства. Opid хранится в виде записи OfficeArtFOPTEOPID. Если последний фрагмент записи OfficeArtFOPTEOPID, поле fComplex равно 0x1, свойство является сложного свойства. В этом случае сведения, размер которого превышает 4-байтовый предел записей OfficeArtFOPTE перемещается в разделе complexData OfficeArtRGFOPTE родительской таблицы.
Извлечение изображения из двоичного файла
Процесс извлечения картинок из двоичных файлов Microsoft Office частично зависит от типов картинки, чтобы извлечь и частично ведущего приложения. Следующая таблица показывает какие структуры узла рисунков и графических групп в различных Microsoft Office двоичных форматов файлов.