BuildingBlock
Содержание
[
Скрывать
]BuildingBlock class
Представляет запись документа глоссария, такую как Building Block, AutoText или AutoCorrect.
Чтобы узнать больше, посетитеОбъектная модель документа 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) | Принимает посетителя. |
override AcceptEnd(DocumentVisitor) | Принимает посетителя для посещения конца BuildingBlock. |
override AcceptStart(DocumentVisitor) | Принимает посетителя для посещения начала BuildingBlock. |
AppendChild<T>(T) | Добавляет указанный узел в конец списка дочерних узлов для данного узла. |
Clone(bool) | Создает дубликат узла. |
CreateNavigator() | Создает навигатор, который можно использовать для перемещения и чтения узлов. |
GetAncestor(NodeType) | Получает первого предка указанногоNodeType . |
GetAncestor(Type) | Получает первого предка указанного типа объекта. |
GetChild(NodeType, int, bool) | Возвращает N-й дочерний узел, соответствующий указанному типу. |
GetChildNodes(NodeType, bool) | Возвращает живую коллекцию дочерних узлов, соответствующих указанному типу. |
GetEnumerator() | Обеспечивает поддержку для каждой итерации стиля по дочерним узлам этого узла. |
override GetText() | Получает текст этого узла и всех его дочерних узлов. |
IndexOf(Node) | Возвращает индекс указанного дочернего узла в массиве дочерних узлов. |
InsertAfter<T>(T, Node) | Вставляет указанный узел сразу после указанного ссылочного узла. |
InsertBefore<T>(T, Node) | Вставляет указанный узел непосредственно перед указанным ссылочным узлом. |
NextPreOrder(Node) | Получает следующий узел в соответствии с алгоритмом обхода дерева предварительного порядка. |
PrependChild<T>(T) | Добавляет указанный узел в начало списка дочерних узлов для данного узла. |
PreviousPreOrder(Node) | Получает предыдущий узел в соответствии с алгоритмом обхода дерева предварительного порядка. |
Remove() | Удаляет себя из родителя. |
RemoveAllChildren() | Удаляет все дочерние узлы текущего узла. |
RemoveChild<T>(T) | Удаляет указанный дочерний узел. |
RemoveSmartTags() | Удаляет всеSmartTag узлы-потомки текущего узла. |
SelectNodes(string) | Выбирает список узлов, соответствующих выражению XPath. |
SelectSingleNode(string) | Выбирает первыйNode что соответствует выражению XPath. |
ToString(SaveFormat) | Экспортирует содержимое узла в строку указанного формата. |
ToString(SaveOptions) | Экспортирует содержимое узла в строку, используя указанные параметры сохранения. |
Примечания
BuildingBlock
может содержать толькоSection
узлы.
BuildingBlock
может быть только ребенкомGlossaryDocument
.
Вы можете создавать новые строительные блоки и вставлять их в документ глоссария. Вы можете изменять или удалять существующие строительные блоки. Вы можете копировать или перемещать строительные блоки между документами. Вы можете вставлять содержимое строительного блока в документ.
СоответствуетdocЧасть ,docPartPr иdocPartBodyэлементы в 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);
// Перейти к началу/концу BuildingBlock.
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