Blocuri de construcție

Blocuri de construcție

Acest ghid arată cum să citești și să modifici blocurile de conținut reutilizabile stocate în documentul de glosar al unui document cu Aspose.Words FOSS pentru .NET. Biblioteca expune intrări AutoText, pagini de copertă, antete, subsoluri și conținut predefinit similar prin Document.GlossaryDocument și modelul de obiecte BuildingBlock/BuildingBlockCollection.


Documentul de glosar

Fiecare Document conține un GlossaryDocument — accesibil prin Document.GlossaryDocument — care este, la rândul său, o subclasă DocumentBase ce deține blocurile de construcție. Proprietatea sa BuildingBlocks returnează un BuildingBlockCollection, cu FirstBuildingBlock/LastBuildingBlock oferind acces rapid la capetele listei. Caută un bloc de construcție specific cu GetBuildingBlock(gallery, category, name), potrivind simultan BuildingBlockGallery, șirul de categorie și numele.


Structura blocului de construcție

BuildingBlock este un CompositeNode, astfel că deține propriul său arbore de conținut — Sections (un SectionCollection), FirstSection și LastSection — în același mod în care un Document deține secțiuni. Proprietățile sale de metadate îl identifică și îl clasifică: Name, Guid, Description, Category, Gallery (un BuildingBlockGallery — AutoText, CoverPage, Headers, Footers, Tables, Watermarks, și zeci de alte galerii predefinite), Type (un BuildingBlockType), și Behavior (un BuildingBlockBehavior de Content, Paragraph sau Page) care controlează modul în care conținutul său se îmbină într-un document la inserare.


Gestionarea colecției de blocuri de construcție

BuildingBlockCollection suportă editarea completă a colecției: Add(node), Insert(index, node), Remove(node), RemoveAt(index), Clear(), Contains(node) și IndexOf(node), împreună cu ToArray() și GetEnumerator() pentru citire. Deoarece este un NodeCollection, blocurile de construcție pot fi create, clonate și mutate utilizând aceleași API-uri de nod ca orice altă parte a arborelui documentului.


Blocuri de construcție Text de substituent

Etichetele de document structurat pot face referire la un bloc de construcție ca conținut de substituent: StructuredDocumentTag.Placeholder și StructuredDocumentTagRangeStart.Placeholder returnează ambele BuildingBlock afișat când eticheta este goală, prin proprietatea comună IStructuredDocumentTag.Placeholder.


Sfaturi și cele mai bune practici

  • Potrivește cu atenție cele trei argumente ale lui GetBuildingBlock(gallery, category, name) — același nume poate exista în galerii sau categorii diferite.
  • Folosește BuildingBlockGallery pentru a filtra tipul de conținut reutilizabil pe care îl cauți (AutoText, CoverPage, Tables, Watermarks etc.) în loc să scanezi fiecare bloc de construcție doar după nume.
  • BuildingBlockBehavior determină cum se îmbină conținutul inserat cu documentul înconjurător (Content, Paragraph sau Page) — verifică-l înainte de a presupune că un bloc de construcție se va insera în modul așteptat.
  • Deoarece BuildingBlock este un CompositeNode, tratează-l ca pe orice alt subarbore de noduri când construiești sau editezi conținutul său — AppendChild, InsertAfter și metodele de nod similare se aplică.

Probleme comune

ProblemăCauzăRemediere
GetBuildingBlock() returnează nimicGaleria, categoria sau numele nu corespund exact unui bloc de construcție existentEnumeraţi GlossaryDocument.BuildingBlocks pentru a găsi combinaţia exactă Gallery/Category/Name
Conținutul blocului de construcție inserat se îmbină neaşteptatBehavior (Content/Paragraph/Page) nu este luat în considerareVerificați BuildingBlock.Behavior înainte de inserare pentru a înțelege cum se va îmbina
Marcajul de substituent pentru document structurat nu afișează conținutul așteptatPlaceholder indică un BuildingBlock diferit față de cel presupusCitiți StructuredDocumentTag.Placeholder pentru a confirma care bloc de construcție este de fapt referențiat

FAQ

Unde sunt stocate blocurile de construcție într-un document?

În GlossaryDocument documentului, accesibil prin Document.GlossaryDocument, a cărei proprietate BuildingBlocks este un BuildingBlockCollection.

Cum găsesc un bloc de construcție specific, cum ar fi o intrare AutoText?

Apelă GlossaryDocument.GetBuildingBlock(gallery, category, name) cu BuildingBlockGallery corespunzător, categoria și numele.

Pot adăuga noi blocuri de construcție programatic?

Da — BuildingBlockCollection suportă Add(node) și Insert(index, node) deoarece este un NodeCollection.

Ce controlează BuildingBlockBehavior?

Cum se îmbină conținutul blocului de construcție în document atunci când este inserat — ca Content, un întreg Paragraph sau un întreg Page.

Cum este legat un bloc de construcție de textul substituent al unei etichete de document structurat?

StructuredDocumentTag.Placeholder (și StructuredDocumentTagRangeStart.Placeholder) returnează BuildingBlock care furnizează conținutul substituent al unui SDT când este gol.


API Reference Rezumat

Clasă / MetodăDescriere:
Document.GlossaryDocumentGlossaryDocument al documentului, care conține toate blocurile de construcție
GlossaryDocument.BuildingBlocksBuildingBlockCollection al fiecărui bloc de construcție
GlossaryDocument.GetBuildingBlock()Caută un bloc de construcție după galerie, categorie și nume
BuildingBlockUn CompositeNode cu Name, Gallery, Category, Behavior, Type, Sections
BuildingBlockCollectionAdd(), Insert(), Remove(), Clear(), Contains(), IndexOf()
BuildingBlockGallery / BuildingBlockType / BuildingBlockBehaviorEnumuri care clasifică un bloc de construcție
StructuredDocumentTag.PlaceholderBuildingBlock utilizat ca conținut placeholder pentru un SDT

Vezi și:

 Română