Byggstenar

Byggstenar

Denna guide visar hur man läser och modifierar de återanvändbara innehållsbyggstenarna som lagras i ett dokuments glossariedokument med Aspose.Words FOSS för .NET. Biblioteket exponerar AutoText poster, framsidor, sidhuvuden, sidfötter och liknande fördefinierat innehåll via Document.GlossaryDocument och BuildingBlock/BuildingBlockCollection objektmodellen.


Glossariedokumentet

Varje Document har en GlossaryDocument — åtkomlig via Document.GlossaryDocument — som i sig är en DocumentBase underklass som innehåller byggstenarna. Dess BuildingBlocks egenskap returnerar en BuildingBlockCollection, med FirstBuildingBlock/LastBuildingBlock som ger snabb åtkomst till listans slut. Slå upp en specifik byggsten med GetBuildingBlock(gallery, category, name), som matchar dess BuildingBlockGallery, kategoristräng och namn tillsammans.


Byggstensstruktur

BuildingBlock är en CompositeNode, så den innehåller sitt eget innehållsträd — Sections (en SectionCollection), FirstSection och LastSection — på samma sätt som en Document innehåller sektioner. Dess metadataegenskaper identifierar och klassificerar den: Name, Guid, Description, Category, Gallery (en BuildingBlockGallery — AutoText, CoverPage, Headers, Footers, Tables, Watermarks, och dussintals fler fördefinierade gallerier), Type (en BuildingBlockType), och Behavior (en BuildingBlockBehavior av Content, Paragraph eller Page) som styr hur dess innehåll slås samman med ett dokument när det infogas.


Hantera byggstenssamlingen

BuildingBlockCollection stödjer fullständig kollektionsredigering: Add(node), Insert(index, node), Remove(node), RemoveAt(index), Clear(), Contains(node) och IndexOf(node), tillsammans med ToArray() och GetEnumerator() för läsning. Eftersom det är en NodeCollection kan byggblock konstrueras, klonas och flyttas med samma nod-API:er som vilken annan del av dokumentträdet som helst.


Platshållartext Byggblock

Strukturerade dokumenttaggar kan referera till ett byggblock som deras platshållarinnehåll: StructuredDocumentTag.Placeholder och StructuredDocumentTagRangeStart.Placeholder returnerar båda BuildingBlock som visas när taggen är tom, via den gemensamma egenskapen IStructuredDocumentTag.Placeholder.


Tips och bästa praxis

  • Matcha GetBuildingBlock(gallery, category, name)s tre argument noggrant — samma namn kan finnas i olika gallerier eller kategorier.
  • Använd BuildingBlockGallery för att filtrera vilken typ av återanvändbart innehåll du söker (AutoText, CoverPage, Tables, Watermarks osv.) istället för att skanna varje byggblock enbart efter namn.
  • BuildingBlockBehavior bestämmer hur infogat innehåll sammanslås med det omgivande dokumentet (Content, Paragraph eller Page) — kontrollera det innan du förutsätter att ett byggblock kommer att infogas på det sätt du förväntar dig.
  • Eftersom BuildingBlock är en CompositeNode, behandla den som vilket annat nodunderträd som helst när du bygger eller redigerar dess innehåll — AppendChild, InsertAfter och liknande nodmetoder gäller alla.

Vanliga problem

ProblemOrsakÅtgärd
GetBuildingBlock() returnerar ingetGalleri, kategori eller namn matchar inte exakt ett befintligt byggblockEnumerera GlossaryDocument.BuildingBlocks för att hitta den exakta Gallery/Category/Name kombinationen
Infogat byggblockinnehåll sammanfogas oväntatBehavior (Content/Paragraph/Page) är inte beaktadKontrollera BuildingBlock.Behavior innan du infogar för att förstå hur det kommer att slås ihop
Strukturerad dokumenttagg-platshållare visar inte förväntat innehållPlaceholder pekar på en annan BuildingBlock än vad som antogsLäs StructuredDocumentTag.Placeholder för att bekräfta vilket building block som faktiskt refereras

FAQ

Var lagras byggblock i ett dokument?

I dokumentets GlossaryDocument, tillgänglig via Document.GlossaryDocument, vars BuildingBlocks-egenskap är en BuildingBlockCollection.

Hur hittar jag ett specifikt byggblock, som ett AutoText-inlägg?

Anropa GlossaryDocument.GetBuildingBlock(gallery, category, name) med den matchande BuildingBlockGallery, kategori och namn.

Kan jag lägga till nya byggblock programatiskt?

Ja — BuildingBlockCollection stöder Add(node) och Insert(index, node) eftersom det är en NodeCollection.

Vad styr BuildingBlockBehavior?

Hur blockets innehåll sammanfogas i dokumentet när det infogas — som Content, en hel Paragraph eller en hel Page.

Hur är ett byggblock relaterat till en strukturerad dokumenttags platshållartext?

StructuredDocumentTag.Placeholder (och StructuredDocumentTagRangeStart.Placeholder) returnerar BuildingBlock som tillhandahåller en SDT:s platshållarinnehåll när den är tom.


API Reference Sammanfattning

Klass / MetodBeskrivning
Document.GlossaryDocumentDokumentets GlossaryDocument, som innehåller alla building blocks
GlossaryDocument.BuildingBlocksBuildingBlockCollection av varje byggsten
GlossaryDocument.GetBuildingBlock()Söker upp en byggsten efter galleri, kategori och namn
BuildingBlockEn CompositeNode med Name, Gallery, Category, Behavior, Type, Sections
BuildingBlockCollectionAdd(), Insert(), Remove(), Clear(), Contains(), IndexOf()
BuildingBlockGallery / BuildingBlockType / BuildingBlockBehaviorEnum-typer som klassificerar en byggsten
StructuredDocumentTag.PlaceholderDen BuildingBlock som används som SDT:s platshållarinnehåll

Se även

 Svenska