CustomPart

CustomPart class

Представляет пользовательскую часть (произвольное содержимое), которая не определена стандартом ISO/IEC 29500.

public class CustomPart

Конструкторы

Имя Описание
CustomPart() Конструктор по умолчанию.

Характеристики

Имя Описание
ContentType { get; set; } Определяет тип содержимого этой пользовательской части.
Data { get; set; } Содержит данные этой пользовательской части.
IsExternal { get; set; } ЛОЖЬ если эта пользовательская часть хранится внутри пакета OOXML.Истинный если эта пользовательская часть является внешней целью.
Name { get; set; } Получает или задает абсолютное имя этой части в пакете OOXML или целевой URL.
RelationshipType { get; set; } Получает или задает тип отношения между родительской частью и этой пользовательской частью.

Методы

Имя Описание
Clone() Создает «достаточно глубокую» копию объекта. Не дублирует байтыData значение.

Примечания

Этот класс представляет часть OOXML, которая является целью «неизвестной связи». Все связи, не определенные в ISO/IEC 29500, считаются «неизвестными связями». Неизвестные связи разрешены в документе Office Open XML при условии, что они соответствуют к правилам разметки отношений.

Microsoft Word сохраняет пользовательские части во время циклов открытия/сохранения. Некоторую дополнительную информацию можно найти здесь http://blogs.msdn.com/dmahugh/archive/2006/11/25/arbitrary-content-in-an-opc-package.aspx

Aspose.Words также передает пользовательские части и, кроме того, позволяет программно получить доступ к таким частям черезCustomPart а такжеCustomPartCollection объекты.

Не путайте пользовательские части с пользовательскими XML-данными. ИспользоватьCustomXmlPart если вам нужно для доступа к пользовательским XML-данным.

Примеры

Показывает, как получить доступ к коллекции произвольных пользовательских частей документа.

Document doc = new Document(MyDir + "Custom parts OOXML package.docx");

Assert.AreEqual(2, doc.PackageCustomParts.Count);

// Клонируем вторую часть, затем добавляем клон в коллекцию.
CustomPart clonedPart = doc.PackageCustomParts[1].Clone();
doc.PackageCustomParts.Add(clonedPart);
Assert.AreEqual(3, doc.PackageCustomParts.Count);

// Перечисляем коллекцию и печатаем каждую часть.
using (IEnumerator<CustomPart> enumerator = doc.PackageCustomParts.GetEnumerator())
{
    int index = 0;
    while (enumerator.MoveNext())
    {
        Console.WriteLine($"Part index {index}:");
        Console.WriteLine($"\tName:\t\t\t\t{enumerator.Current.Name}");
        Console.WriteLine($"\tContent type:\t\t{enumerator.Current.ContentType}");
        Console.WriteLine($"\tRelationship type:\t{enumerator.Current.RelationshipType}");
        Console.WriteLine(enumerator.Current.IsExternal ?
            "\tSourced from outside the document" :
            $"\tStored within the document, length: {enumerator.Current.Data.Length} bytes");
        index++;
    }
}

// Мы можем удалить элементы из этой коллекции по отдельности или все сразу.
doc.PackageCustomParts.RemoveAt(2);

Assert.AreEqual(2, doc.PackageCustomParts.Count);

doc.PackageCustomParts.Clear();

Assert.AreEqual(0, doc.PackageCustomParts.Count);

Смотрите также