BuildingBlock

BuildingBlock class

Representerar en dokumentpost i ordlistan såsom en byggsten, autotext eller en autokorrigeringspost.

För att lära dig mer, besökAspose.Words Document Object Model (DOM) dokumentationsartikel.

public class BuildingBlock : CompositeNode

Konstruktörer

namnBeskrivning
BuildingBlock(GlossaryDocument)Initierar en ny instans av den här klassen.

Egenskaper

namnBeskrivning
Behavior { get; set; }Anger beteendet som ska tillämpas när innehållet i byggstenen infogas i huvuddokumentet.
Category { get; set; }Anger kategoriseringen på andra nivån för byggblocket.
Count { get; }Hämtar antalet omedelbara barn till denna nod.
CustomNodeId { get; set; }Anger anpassad nodidentifierare.
Description { get; set; }Hämtar eller ställer in beskrivningen som är kopplad till detta byggblock.
virtual Document { get; }Hämtar dokumentet som denna nod tillhör.
FirstChild { get; }Får det första barnet i noden.
FirstSection { get; }Hämtar det första avsnittet i byggblocket.
Gallery { get; set; }Anger kategoriseringen på första nivån för byggblocket för -klassificering eller sortering av användargränssnitt.
Guid { get; set; }Hämtar eller ställer in en identifierare (en 128-bitars GUID) som unikt identifierar denna byggsten.
HasChildNodes { get; }ReturnerarSann om denna nod har några undernoder.
override IsComposite { get; }ReturnerarSann eftersom denna nod kan ha underordnade noder.
LastChild { get; }Hämtar nodens sista underordnade.
LastSection { get; }Hämtar det sista avsnittet i byggblocket.
Name { get; set; }Hämtar eller ställer in namnet på denna byggsten.
NextSibling { get; }Hämtar noden omedelbart efter denna nod.
override NodeType { get; }ReturnerarBuildingBlock värde.
ParentNode { get; }Hämtar den omedelbara föräldern till denna nod.
PreviousSibling { get; }Hämtar noden omedelbart före denna nod.
Range { get; }Returnerar enRange objekt som representerar den del av ett dokument som finns i denna nod.
Sections { get; }Returnerar en samling som representerar alla sektioner i byggblocket.
Type { get; set; }Anger byggblockstyp.

Metoder

namnBeskrivning
override Accept(DocumentVisitor)Accepterar en besökare.
AppendChild(Node)Lägger till den angivna noden i slutet av listan över underordnade noder för denna nod.
Clone(bool)Skapar en dubblett av noden.
CreateNavigator()Skapar navigator som kan användas för att korsa och läsa noder.
GetAncestor(NodeType)Hämtar den första förfadern till den angivnaNodeType .
GetAncestor(Type)Hämtar den första förfadern till den angivna objekttypen.
GetChild(NodeType, int, bool)Returnerar en N:te underordnad nod som matchar den angivna typen.
GetChildNodes(NodeType, bool)Returnerar en aktiv samling av underordnade noder som matchar den angivna typen.
GetEnumerator()Tillhandahåller stöd för varje stiliteration över undernoderna för denna nod.
override GetText()Hämtar texten för denna nod och alla dess underordnade.
IndexOf(Node)Returnerar indexet för den angivna undernoden i den underordnade nodmatrisen.
InsertAfter(NodeNode)Infogar den angivna noden omedelbart efter den angivna referensnoden.
InsertBefore(NodeNode)Infogar den angivna noden omedelbart före den angivna referensnoden.
NextPreOrder(Node)Hämtar nästa nod enligt algoritmen för förbeställningsträdet.
PrependChild(Node)Lägger till den angivna noden i början av listan över underordnade noder för denna nod.
PreviousPreOrder(Node)Hämtar föregående nod enligt algoritmen för förbeställningsträdet.
Remove()Tar bort sig själv från föräldern.
RemoveAllChildren()Tar bort alla undernoder för den aktuella noden.
RemoveChild(Node)Tar bort den angivna underordnade noden.
RemoveSmartTags()Tar bort allaSmartTagunderliggande noder till den aktuella noden.
SelectNodes(string)Väljer en lista med noder som matchar XPath-uttrycket.
SelectSingleNode(string)Väljer den förstaNode som matchar XPath-uttrycket.
ToString(SaveFormat)Exporterar innehållet i noden till en sträng i angivet format.
ToString(SaveOptions)Exporterar innehållet i noden till en sträng med de angivna sparalternativen.

Anmärkningar

BuildingBlock kan endast innehållaSection knutpunkter.

BuildingBlock kan bara vara ett barn avGlossaryDocument.

Du kan skapa nya byggblock och infoga dem i ett ordlistadokument. Du kan ändra eller ta bort befintliga byggblock. Du kan kopiera eller flytta byggstenar mellan dokument. Du kan infoga innehållet i ett byggblock i ett dokument.

MotsvarardocPart ,docPartPr ochdocPartBody element i OOXML.

Exempel

Visar hur man lägger till ett anpassat byggblock till ett dokument.

public void CreateAndInsert()
{
    // Ett dokuments ordlista dokument lagrar byggstenar.
    Document doc = new Document();
    GlossaryDocument glossaryDoc = new GlossaryDocument();
    doc.GlossaryDocument = glossaryDoc;

    // Skapa ett byggblock, namnge det och lägg sedan till det i ordlistans dokument.
    BuildingBlock block = new BuildingBlock(glossaryDoc)
    {
        Name = "Custom Block"
    };

    glossaryDoc.AppendChild(block);

    // Alla nya byggblock GUID har samma nollvärde som standard, och vi kan ge dem ett nytt unikt värde.
    Assert.AreEqual("00000000-0000-0000-0000-000000000000", block.Guid.ToString());

    block.Guid = Guid.NewGuid();

    // Följande egenskaper kategoriserar byggstenar
    // i menyn kan vi komma åt i Microsoft Word via "Infoga" -> "Snabbdelar" -> "Byggstensarrangör".
    Assert.AreEqual("(Empty Category)", block.Category);
    Assert.AreEqual(BuildingBlockType.None, block.Type);
    Assert.AreEqual(BuildingBlockGallery.All, block.Gallery);
    Assert.AreEqual(BuildingBlockBehavior.Content, block.Behavior);

    // Innan vi kan lägga till den här byggstenen i vårt dokument måste vi ge det lite innehåll,
    // vilket vi kommer att göra med en dokumentbesökare. Den här besökaren kommer också att ange en kategori, ett galleri och ett beteende.
    BuildingBlockVisitor visitor = new BuildingBlockVisitor(glossaryDoc);
    block.Accept(visitor);

    // Vi kan komma åt blocket som vi just skapade från ordlistans dokument.
    BuildingBlock customBlock = glossaryDoc.GetBuildingBlock(BuildingBlockGallery.QuickParts,
        "My custom building blocks", "Custom Block");

    // Själva blocket är ett avsnitt som innehåller texten.
    Assert.AreEqual($"Text inside {customBlock.Name}\f", customBlock.FirstSection.Body.FirstParagraph.GetText());
    Assert.AreEqual(customBlock.FirstSection, customBlock.LastSection);
    // Nu kan vi infoga det i dokumentet som ett nytt avsnitt.
    doc.AppendChild(doc.ImportNode(customBlock.FirstSection, true));

    // Vi kan också hitta det i Microsoft Words Building Blocks Organizer och placera det manuellt.
    doc.Save(ArtifactsDir + "BuildingBlocks.CreateAndInsert.dotx");
}

/// <summary>
/// Konfigurerar ett besökt byggblock som ska infogas i dokumentet som en snabb del och lägger till text i dess innehåll.
/// </summary>
public class BuildingBlockVisitor : DocumentVisitor
{
    public BuildingBlockVisitor(GlossaryDocument ownerGlossaryDoc)
    {
        mBuilder = new StringBuilder();
        mGlossaryDoc = ownerGlossaryDoc;
    }

    public override VisitorAction VisitBuildingBlockStart(BuildingBlock block)
    {
        // Konfigurera byggblocket som en snabbdel och lägg till egenskaper som används av 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;

        // Lägg till ett avsnitt med text.
        // Om du infogar blocket i dokumentet kommer detta avsnitt att läggas till med dess underordnade noder på platsen.
        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;
}

Se även