Blocchi di costruzione

Blocchi di Costruzione

Questa guida mostra come leggere e modificare i blocchi di contenuto riutilizzabili memorizzati nel documento di glossario di un documento con Aspose.Words FOSS per .NET. La libreria espone AutoText voci, pagine di copertina, intestazioni, piè di pagina e contenuti predefiniti simili tramite Document.GlossaryDocument e il modello oggetto BuildingBlock/BuildingBlockCollection.


Il documento di glossario

Ogni Document contiene un GlossaryDocument — accessibile tramite Document.GlossaryDocument — che è a sua volta una sottoclasse DocumentBase che contiene i blocchi di costruzione. La sua proprietà BuildingBlocks restituisce un BuildingBlockCollection, con FirstBuildingBlock/LastBuildingBlock che forniscono un accesso rapido alle estremità dell’elenco. Cerca un blocco di costruzione specifico con GetBuildingBlock(gallery, category, name), facendo corrispondere il suo BuildingBlockGallery, la stringa di categoria e il nome insieme.


Struttura del Blocco di Costruzione

BuildingBlock è un CompositeNode, quindi contiene il proprio albero dei contenuti — Sections (un SectionCollection), FirstSection e LastSection — allo stesso modo in cui un Document contiene sezioni. Le sue proprietà dei metadati lo identificano e lo classificano: Name, Guid, Description, Category, Gallery (un BuildingBlockGallery — AutoText, CoverPage, Headers, Footers, Tables, Watermarks, e dozzine di altre gallerie predefinite), Type (un BuildingBlockType), e Behavior (un BuildingBlockBehavior di Content, Paragraph o Page) che controllano come i suoi contenuti si fondono in un documento quando inseriti.


Gestire la Collezione di Blocchi di Costruzione

BuildingBlockCollection supporta la modifica completa della collezione: Add(node), Insert(index, node), Remove(node), RemoveAt(index), Clear(), Contains(node) e IndexOf(node), insieme a ToArray() e GetEnumerator() per la lettura. Poiché è un NodeCollection, i blocchi costruttivi possono essere creati, clonati e spostati usando le stesse API dei nodi di qualsiasi altra parte dell’albero del documento.


Blocchi di Testo Segnaposto

I tag di documento strutturato possono fare riferimento a un blocco costruttivo come contenuto segnaposto: StructuredDocumentTag.Placeholder e StructuredDocumentTagRangeStart.Placeholder restituiscono entrambi il BuildingBlock mostrato quando il tag è vuoto, tramite la proprietà condivisa IStructuredDocumentTag.Placeholder.


Suggerimenti e Migliori Pratiche

  • Abbina attentamente i tre argomenti di GetBuildingBlock(gallery, category, name) — lo stesso nome può esistere in diverse gallerie o categorie.
  • Usa BuildingBlockGallery per filtrare il tipo di contenuto riutilizzabile che stai cercando (AutoText, CoverPage, Tables, Watermarks, ecc.) invece di scansionare ogni blocco costruttivo solo per nome.
  • BuildingBlockBehavior determina come il contenuto inserito si fonde con il documento circostante (Content, Paragraph o Page) — controllalo prima di presumere che un blocco costruttivo venga inserito come ti aspetti.
  • Poiché BuildingBlock è un CompositeNode, trattalo come qualsiasi altro sottoalbero di nodi durante la creazione o la modifica dei suoi contenuti — AppendChild, InsertAfter e metodi di nodo simili si applicano tutti.

Problemi comuni

ProblemaCausaCorrezione
GetBuildingBlock() non restituisce nullaGalleria, categoria o nome non corrispondono esattamente a un building block esistenteElencare GlossaryDocument.BuildingBlocks per trovare la combinazione esatta Gallery/Category/Name
Il contenuto del building block inserito si fonde in modo inattesoBehavior (Content/Paragraph/Page) non previstoControlla BuildingBlock.Behavior prima di inserire per capire come verrà unito
Il segnaposto del tag del documento strutturato non mostra il contenuto previstoPlaceholder punta a un BuildingBlock diverso da quello presuntoLeggi StructuredDocumentTag.Placeholder per confermare quale blocco costruttivo è effettivamente referenziato

FAQ

Dove sono archiviati i blocchi di costruzione in un documento?

Nel GlossaryDocument del documento, accessibile tramite Document.GlossaryDocument, la cui proprietà BuildingBlocks è un BuildingBlockCollection.

Come trovo un blocco di costruzione specifico, ad esempio una voce AutoText?

Chiama GlossaryDocument.GetBuildingBlock(gallery, category, name) con il BuildingBlockGallery corrispondente, la categoria e il nome.

Posso aggiungere nuovi blocchi di costruzione in modo programmatico?

Sì — BuildingBlockCollection supporta Add(node) e Insert(index, node) poiché è un NodeCollection.

Cosa controlla BuildingBlockBehavior?

Come si fonde il contenuto del blocco di costruzione nel documento quando viene inserito — come Content, un intero Paragraph o un intero Page.

Come è correlato un blocco di costruzione al testo segnaposto di un tag di documento strutturato?

StructuredDocumentTag.Placeholder (e StructuredDocumentTagRangeStart.Placeholder) restituiscono il BuildingBlock che fornisce il contenuto segnaposto di un SDT quando è vuoto.


Riepilogo API Reference

Classe / MetodoDescrizione
Document.GlossaryDocumentIl GlossaryDocument del documento, che contiene tutti i blocchi costruttivi
GlossaryDocument.BuildingBlocksBuildingBlockCollection di ogni blocco costruttivo
GlossaryDocument.GetBuildingBlock()Cerca un blocco costruttivo per galleria, categoria e nome
BuildingBlockUn CompositeNode con Name, Gallery, Category, Behavior, Type, Sections
BuildingBlockCollectionAdd(), Insert(), Remove(), Clear(), Contains(), IndexOf()
BuildingBlockGallery / BuildingBlockType / BuildingBlockBehaviorEnum che classificano un blocco di costruzione
StructuredDocumentTag.PlaceholderIl BuildingBlock usato come contenuto segnaposto di un SDT

Vedi anche

 Italiano