BuildingBlock
BuildingBlock class
Representa una entrada de documento de glosario, como un bloque de creación, un autotexto o una entrada de autocorrección.
Para obtener más información, visite elModelo de objetos de documento (DOM) de Aspose.Words Artículo de documentación.
public class BuildingBlock : CompositeNode
Constructores
| Nombre | Descripción |
|---|---|
| BuildingBlock(GlossaryDocument) | Inicializa una nueva instancia de esta clase. |
Propiedades
| Nombre | Descripción |
|---|---|
| Behavior { get; set; } | Especifica el comportamiento que se aplicará cuando el contenido del bloque de construcción se inserte en el documento principal. |
| Category { get; set; } | Especifica la categorización de segundo nivel para el bloque de construcción. |
| Count { get; } | Obtiene el número de hijos inmediatos de este nodo. |
| CustomNodeId { get; set; } | Especifica un identificador de nodo personalizado. |
| Description { get; set; } | Obtiene o establece la descripción asociada con este bloque de construcción. |
| virtual Document { get; } | Obtiene el documento al que pertenece este nodo. |
| FirstChild { get; } | Obtiene el primer hijo del nodo. |
| FirstSection { get; } | Obtiene la primera sección del bloque de construcción. |
| Gallery { get; set; } | Especifica la categorización de primer nivel para el bloque de construcción a los efectos de clasificación o clasificación de la interfaz de usuario. |
| Guid { get; set; } | Obtiene o establece un identificador (un GUID de 128 bits) que identifica de forma única este bloque de creación. |
| HasChildNodes { get; } | Devuelveverdadero si este nodo tiene nodos secundarios. |
| override IsComposite { get; } | Devuelveverdadero ya que este nodo puede tener nodos secundarios. |
| LastChild { get; } | Obtiene el último hijo del nodo. |
| LastSection { get; } | Obtiene la última sección del bloque de construcción. |
| Name { get; set; } | Obtiene o establece el nombre de este bloque de construcción. |
| NextSibling { get; } | Obtiene el nodo inmediatamente siguiente a este nodo. |
| override NodeType { get; } | Devuelve elBuildingBlock valor. |
| ParentNode { get; } | Obtiene el padre inmediato de este nodo. |
| PreviousSibling { get; } | Obtiene el nodo inmediatamente anterior a este nodo. |
| Range { get; } | Devuelve unRangeobjeto que representa la porción de un documento que está contenida en este nodo. |
| Sections { get; } | Devuelve una colección que representa todas las secciones del bloque de construcción. |
| Type { get; set; } | Especifica el tipo de bloque de construcción. |
Métodos
| Nombre | Descripción |
|---|---|
| override Accept(DocumentVisitor) | Acepta un visitante. |
| override AcceptEnd(DocumentVisitor) | Acepta un visitante por visitar el final del BuildingBlock. |
| override AcceptStart(DocumentVisitor) | Acepta un visitante por visitar el inicio del BuildingBlock. |
| AppendChild<T>(T) | Agrega el nodo especificado al final de la lista de nodos secundarios para este nodo. |
| Clone(bool) | Crea un duplicado del nodo. |
| CreateNavigator() | Crea un navegador que puede utilizarse para recorrer y leer nodos. |
| GetAncestor(NodeType) | Obtiene el primer ancestro del especificadoNodeType . |
| GetAncestor(Type) | Obtiene el primer ancestro del tipo de objeto especificado. |
| GetChild(NodeType, int, bool) | Devuelve un nodo secundario N que coincide con el tipo especificado. |
| GetChildNodes(NodeType, bool) | Devuelve una colección activa de nodos secundarios que coinciden con el tipo especificado. |
| GetEnumerator() | Proporciona soporte para cada iteración de estilo sobre los nodos secundarios de este nodo. |
| override GetText() | Obtiene el texto de este nodo y de todos sus hijos. |
| IndexOf(Node) | Devuelve el índice del nodo secundario especificado en la matriz de nodos secundarios. |
| InsertAfter<T>(T, Node) | Inserta el nodo especificado inmediatamente después del nodo de referencia especificado. |
| InsertBefore<T>(T, Node) | Inserta el nodo especificado inmediatamente antes del nodo de referencia especificado. |
| NextPreOrder(Node) | Obtiene el siguiente nodo según el algoritmo de recorrido del árbol de preorden. |
| PrependChild<T>(T) | Agrega el nodo especificado al comienzo de la lista de nodos secundarios para este nodo. |
| PreviousPreOrder(Node) | Obtiene el nodo anterior según el algoritmo de recorrido del árbol de preorden. |
| Remove() | Se elimina a sí mismo del padre. |
| RemoveAllChildren() | Elimina todos los nodos secundarios del nodo actual. |
| RemoveChild<T>(T) | Elimina el nodo secundario especificado. |
| RemoveSmartTags() | Elimina todoSmartTag nodos descendientes del nodo actual. |
| SelectNodes(string) | Selecciona una lista de nodos que coinciden con la expresión XPath. |
| SelectSingleNode(string) | Selecciona el primerNode que coincide con la expresión XPath. |
| ToString(SaveFormat) | Exporta el contenido del nodo en una cadena en el formato especificado. |
| ToString(SaveOptions) | Exporta el contenido del nodo en una cadena utilizando las opciones de guardado especificadas. |
Observaciones
BuildingBlock sólo puede contenerSection nodos.
BuildingBlock sólo puede ser hijo deGlossaryDocument.
Puede crear nuevos bloques de creación e insertarlos en un documento de glosario. Puede modificar o eliminar bloques de creación existentes. Puede copiar o mover bloques de creación entre documentos. Puede insertar el contenido de un bloque de creación en un documento.
Corresponde a ladocPart ,docPartPr ydocPartBodyelementos en OOXML.
Ejemplos
Muestra cómo agregar un bloque de construcción personalizado a un documento.
public void CreateAndInsert()
{
// El glosario de un documento almacena bloques de construcción.
Document doc = new Document();
GlossaryDocument glossaryDoc = new GlossaryDocument();
doc.GlossaryDocument = glossaryDoc;
// Cree un bloque de construcción, asígnele un nombre y luego agréguelo al documento de glosario.
BuildingBlock block = new BuildingBlock(glossaryDoc)
{
Name = "Custom Block"
};
glossaryDoc.AppendChild(block);
// Todos los GUID de bloques de construcción nuevos tienen el mismo valor cero de manera predeterminada, y podemos darles un nuevo valor único.
Assert.AreEqual("00000000-0000-0000-0000-000000000000", block.Guid.ToString());
block.Guid = Guid.NewGuid();
// Las siguientes propiedades categorizan los bloques de construcción
// en el menú podemos acceder en Microsoft Word a través de “Insertar” -> “Elementos rápidos” -> “Organizador de bloques de construcción”.
Assert.AreEqual("(Empty Category)", block.Category);
Assert.AreEqual(BuildingBlockType.None, block.Type);
Assert.AreEqual(BuildingBlockGallery.All, block.Gallery);
Assert.AreEqual(BuildingBlockBehavior.Content, block.Behavior);
// Antes de que podamos agregar este bloque de construcción a nuestro documento, necesitaremos darle algunos contenidos,
// Lo haremos usando un visitante de documento. Este visitante también definirá una categoría, una galería y un comportamiento.
BuildingBlockVisitor visitor = new BuildingBlockVisitor(glossaryDoc);
// Visita el inicio/fin del BuildingBlock.
block.Accept(visitor);
//Podemos acceder al bloque que acabamos de crear desde el documento de glosario.
BuildingBlock customBlock = glossaryDoc.GetBuildingBlock(BuildingBlockGallery.QuickParts,
"My custom building blocks", "Custom Block");
//El bloque en sí es una sección que contiene el texto.
Assert.AreEqual($"Text inside {customBlock.Name}\f", customBlock.FirstSection.Body.FirstParagraph.GetText());
Assert.AreEqual(customBlock.FirstSection, customBlock.LastSection);
//Ahora podemos insertarlo en el documento como una nueva sección.
doc.AppendChild(doc.ImportNode(customBlock.FirstSection, true));
//También podemos encontrarlo en el Organizador de bloques de construcción de Microsoft Word y colocarlo manualmente.
doc.Save(ArtifactsDir + "BuildingBlocks.CreateAndInsert.dotx");
}
/// <summary>
/// Configura un bloque de construcción visitado para insertarlo en el documento como una parte rápida y agrega texto a su contenido.
/// </summary>
public class BuildingBlockVisitor : DocumentVisitor
{
public BuildingBlockVisitor(GlossaryDocument ownerGlossaryDoc)
{
mBuilder = new StringBuilder();
mGlossaryDoc = ownerGlossaryDoc;
}
public override VisitorAction VisitBuildingBlockStart(BuildingBlock block)
{
// Configure el bloque de construcción como una parte rápida y agregue propiedades utilizadas por Building Blocks Organizer.
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;
//Agrega una sección con texto.
// Insertar el bloque en el documento agregará esta sección con sus nodos secundarios en la ubicación.
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;
}
Ver también
- class CompositeNode
- espacio de nombres Aspose.Words.BuildingBlocks
- asamblea Aspose.Words