BuildingBlock
Содержание
[
Скрывать
]BuildingBlock class
Представляет запись документа глоссария, такую как стандартный блок, автотекст или запись автозамены.
Чтобы узнать больше, посетитеОбъектная модель документа Aspose.Words (DOM) статья документации.
public class BuildingBlock : CompositeNode
Конструкторы
Имя | Описание |
---|---|
BuildingBlock(GlossaryDocument) | Инициализирует новый экземпляр этого класса. |
Характеристики
Имя | Описание |
---|---|
Behavior { get; set; } | Определяет поведение, которое должно применяться, когда содержимое стандартного блока вставляется в основной документ. |
Category { get; set; } | Указывает категоризацию второго уровня для стандартного блока. |
Count { get; } | Получает количество непосредственных дочерних элементов этого узла. |
CustomNodeId { get; set; } | Указывает пользовательский идентификатор узла. |
Description { get; set; } | Получает или задает описание, связанное с этим стандартным блоком. |
virtual Document { get; } | Получает документ, которому принадлежит этот узел. |
FirstChild { get; } | Получает первого дочернего элемента узла. |
FirstSection { get; } | Получает первый раздел в стандартном блоке. |
Gallery { get; set; } | Определяет категоризацию первого уровня для стандартного блока для целей классификации или сортировки пользовательского интерфейса. |
Guid { get; set; } | Получает или задает идентификатор (128-битный GUID), который однозначно идентифицирует этот стандартный блок. |
HasChildNodes { get; } | Возвращаетистинный если у этого узла есть дочерние узлы. |
override IsComposite { get; } | Возвращаетистинный поскольку этот узел может иметь дочерние узлы. |
LastChild { get; } | Получает последнего дочернего узла узла. |
LastSection { get; } | Получает последний раздел в стандартном блоке. |
Name { get; set; } | Получает или задает имя этого стандартного блока. |
NextSibling { get; } | Получает узел, следующий сразу за этим узлом. |
override NodeType { get; } | ВозвращаетBuildingBlock значение. |
ParentNode { get; } | Получает непосредственного родителя этого узла. |
PreviousSibling { get; } | Получает узел, непосредственно предшествующий этому узлу. |
Range { get; } | ВозвращаетRange объект, представляющий часть документа, содержащуюся в этом узле. |
Sections { get; } | Возвращает коллекцию, представляющую все разделы стандартного блока. |
Type { get; set; } | Указывает тип стандартного блока. |
Методы
Имя | Описание |
---|---|
override Accept(DocumentVisitor) | Принимает посетителя. |
AppendChild(Node) | Добавляет указанный узел в конец списка дочерних узлов для этого узла. |
Clone(bool) | Создает дубликат узла. |
CreateNavigator() | Создает навигатор, который можно использовать для перемещения и чтения узлов. |
GetAncestor(NodeType) | Получает первого предка указанногоNodeType . |
GetAncestor(Type) | Получает первого предка указанного типа объекта. |
GetChild(NodeType, int, bool) | Возвращает N-й дочерний узел, соответствующий указанному типу. |
GetChildNodes(NodeType, bool) | Возвращает живую коллекцию дочерних узлов, соответствующих указанному типу. |
GetEnumerator() | Обеспечивает поддержку для каждой итерации стиля над дочерними узлами этого узла. |
override GetText() | Получает текст этого узла и всех его дочерних элементов. |
IndexOf(Node) | Возвращает индекс указанного дочернего узла в массиве дочерних узлов. |
InsertAfter(Node, Node) | Вставляет указанный узел сразу после указанного ссылочного узла. |
InsertBefore(Node, Node) | Вставляет указанный узел непосредственно перед указанным ссылочным узлом. |
NextPreOrder(Node) | Получает следующий узел в соответствии с алгоритмом обхода дерева предварительного заказа. |
PrependChild(Node) | Добавляет указанный узел в начало списка дочерних узлов для этого узла. |
PreviousPreOrder(Node) | Получает предыдущий узел в соответствии с алгоритмом обхода дерева предварительного заказа. |
Remove() | Удаляет себя от родителя. |
RemoveAllChildren() | Удаляет все дочерние узлы текущего узла. |
RemoveChild(Node) | Удаляет указанный дочерний узел. |
RemoveSmartTags() | Удаляет всеSmartTag узлы-потомки текущего узла. |
SelectNodes(string) | Выбирает список узлов, соответствующих выражению XPath. |
SelectSingleNode(string) | Выбирает первыйNode которое соответствует выражению XPath. |
ToString(SaveFormat) | Экспортирует содержимое узла в строку указанного формата. |
ToString(SaveOptions) | Экспортирует содержимое узла в строку, используя указанные параметры сохранения. |
Примечания
BuildingBlock
может содержать толькоSection
узлы.
BuildingBlock
может быть только ребенкомGlossaryDocument
.
Вы можете создавать новые стандартные блоки и вставлять их в документ глоссария. Вы можете изменять или удалять существующие стандартные блоки. Вы можете копировать или перемещать стандартные блоки между документами. Вы можете вставить содержимое стандартного блока в документ.
СоответствуетдокПарт ,документПартПр идокументPartBody элементы в OOXML.
Примеры
Показывает, как добавить в документ пользовательский стандартный блок.
public void CreateAndInsert()
{
// Глоссарий документа. В документе хранятся строительные блоки.
Document doc = new Document();
GlossaryDocument glossaryDoc = new GlossaryDocument();
doc.GlossaryDocument = glossaryDoc;
// Создайте строительный блок, назовите его, а затем добавьте в документ глоссария.
BuildingBlock block = new BuildingBlock(glossaryDoc)
{
Name = "Custom Block"
};
glossaryDoc.AppendChild(block);
// Все новые GUID строительных блоков по умолчанию имеют одинаковое нулевое значение, и мы можем присвоить им новое уникальное значение.
Assert.AreEqual("00000000-0000-0000-0000-000000000000", block.Guid.ToString());
block.Guid = Guid.NewGuid();
// Следующие свойства классифицируют стандартные блоки
// в меню, к которому мы можем получить доступ в Microsoft Word через «Вставка» -> «Быстрые детали» -> «Организатор строительных блоков».
Assert.AreEqual("(Empty Category)", block.Category);
Assert.AreEqual(BuildingBlockType.None, block.Type);
Assert.AreEqual(BuildingBlockGallery.All, block.Gallery);
Assert.AreEqual(BuildingBlockBehavior.Content, block.Behavior);
// Прежде чем мы сможем добавить этот строительный блок в наш документ, нам нужно будет добавить в него некоторое содержимое,
// что мы будем делать с помощью посетителя документа. Этот посетитель также установит категорию, галерею и поведение.
BuildingBlockVisitor visitor = new BuildingBlockVisitor(glossaryDoc);
block.Accept(visitor);
// Мы можем получить доступ к только что созданному блоку из документа глоссария.
BuildingBlock customBlock = glossaryDoc.GetBuildingBlock(BuildingBlockGallery.QuickParts,
"My custom building blocks", "Custom Block");
// Сам блок представляет собой раздел, содержащий текст.
Assert.AreEqual($"Text inside {customBlock.Name}\f", customBlock.FirstSection.Body.FirstParagraph.GetText());
Assert.AreEqual(customBlock.FirstSection, customBlock.LastSection);
// Теперь мы можем вставить его в документ как новый раздел.
doc.AppendChild(doc.ImportNode(customBlock.FirstSection, true));
// Мы также можем найти его в органайзере строительных блоков Microsoft Word и разместить вручную.
doc.Save(ArtifactsDir + "BuildingBlocks.CreateAndInsert.dotx");
}
/// <summary>
/// Устанавливает посещенный строительный блок для вставки в документ как быструю часть и добавляет текст к его содержимому.
/// </summary>
public class BuildingBlockVisitor : DocumentVisitor
{
public BuildingBlockVisitor(GlossaryDocument ownerGlossaryDoc)
{
mBuilder = new StringBuilder();
mGlossaryDoc = ownerGlossaryDoc;
}
public override VisitorAction VisitBuildingBlockStart(BuildingBlock block)
{
// Настройте строительный блок как быструю часть и добавьте свойства, используемые Организатором строительных блоков.
block.Behavior = BuildingBlockBehavior.Paragraph;
block.Category = "My custom building blocks";
block.Description =
"Using this block in the Quick Parts section of word will place its contents at the cursor.";
block.Gallery = BuildingBlockGallery.QuickParts;
// Добавляем раздел с текстом.
// Вставка блока в документ добавит этот раздел с его дочерними узлами в указанном месте.
Section section = new Section(mGlossaryDoc);
block.AppendChild(section);
block.FirstSection.EnsureMinimum();
Run run = new Run(mGlossaryDoc, "Text inside " + block.Name);
block.FirstSection.Body.FirstParagraph.AppendChild(run);
return VisitorAction.Continue;
}
public override VisitorAction VisitBuildingBlockEnd(BuildingBlock block)
{
mBuilder.Append("Visited " + block.Name + "\r\n");
return VisitorAction.Continue;
}
private readonly StringBuilder mBuilder;
private readonly GlossaryDocument mGlossaryDoc;
}
Смотрите также
- class CompositeNode
- пространство имен Aspose.Words.BuildingBlocks
- сборка Aspose.Words