Blocs de construction

Blocs de construction

Ce guide montre comment lire et modifier les blocs de construction de contenu réutilisables stockés dans le document de glossaire d’un document avec Aspose.Words FOSS pour .NET. La bibliothèque expose les entrées AutoText, les pages de garde, les en-têtes, les pieds de page et d’autres contenus prédéfinis similaires via Document.GlossaryDocument et le modèle d’objet BuildingBlock/BuildingBlockCollection.


Le document de glossaire

Chaque Document possède un GlossaryDocument — accessible via Document.GlossaryDocument — qui est lui-même une sous-classe DocumentBase contenant les blocs de construction. Sa propriété BuildingBlocks renvoie un BuildingBlockCollection, avec FirstBuildingBlock/LastBuildingBlock offrant un accès rapide aux extrémités de la liste. Recherchez un bloc de construction spécifique avec GetBuildingBlock(gallery, category, name), en faisant correspondre son BuildingBlockGallery, sa chaîne de catégorie et son nom ensemble.


Structure du bloc de construction

BuildingBlock est un CompositeNode, donc il contient son propre arbre de contenu — Sections (un SectionCollection), FirstSection et LastSection — de la même manière qu’un Document contient des sections. Ses propriétés de métadonnées l’identifient et le classifient: Name, Guid, Description, Category, Gallery (un BuildingBlockGallery — AutoText, CoverPage, Headers, Footers, Tables, Watermarks, et des dizaines d’autres galeries prédéfinies), Type (un BuildingBlockType), et Behavior (un BuildingBlockBehavior de Content, Paragraph ou Page) contrôlant la façon dont son contenu se fusionne dans un document lorsqu’il est inséré.


Gestion de la collection de blocs de construction

BuildingBlockCollection prend en charge la modification complète de la collection: Add(node), Insert(index, node), Remove(node), RemoveAt(index), Clear(), Contains(node) et IndexOf(node), ainsi que ToArray() et GetEnumerator() pour la lecture. Parce que c’est un NodeCollection, les blocs de construction peuvent être créés, clonés et déplacés en utilisant les mêmes API de nœuds que toute autre partie de l’arbre du document.


Blocs de construction de texte d’espace réservé

Les balises de document structuré peuvent référencer un bloc de construction comme contenu d’espace réservé: StructuredDocumentTag.Placeholder et StructuredDocumentTagRangeStart.Placeholder renvoient tous deux le BuildingBlock affiché lorsque la balise est vide, via la propriété partagée IStructuredDocumentTag.Placeholder.


Conseils et meilleures pratiques

  • Faites correspondre soigneusement les trois arguments de GetBuildingBlock(gallery, category, name) — le même nom peut exister dans différentes galeries ou catégories.
  • Utilisez BuildingBlockGallery pour filtrer le type de contenu réutilisable que vous recherchez (AutoText, CoverPage, Tables, Watermarks, etc.) plutôt que de parcourir chaque bloc de construction uniquement par son nom.
  • BuildingBlockBehavior détermine comment le contenu inséré se fusionne avec le document environnant (Content, Paragraph ou Page) — vérifiez-le avant de supposer qu’un bloc de construction s’insérera comme vous l’attendez.
  • Puisque BuildingBlock est un CompositeNode, traitez-le comme n’importe quel autre sous-arbre de nœud lors de la création ou de la modification de son contenu — AppendChild, InsertAfter et des méthodes de nœud similaires s’appliquent.

Problèmes courants

ProblèmeCauseCorrection
GetBuildingBlock() ne renvoie rienLa galerie, la catégorie ou le nom ne correspond pas exactement à un bloc de construction existantÉnumérez GlossaryDocument.BuildingBlocks pour trouver la combinaison exacte Gallery/Category/Name
Le contenu du bloc de construction inséré se fusionne de manière inattendueBehavior (Content/Paragraph/Page) non pris en compteVérifiez BuildingBlock.Behavior avant d’insérer pour comprendre comment il sera fusionné
L’espace réservé de la balise de document structuré n’affiche pas le contenu attenduPlaceholder pointe vers un BuildingBlock différent de celui supposéLisez StructuredDocumentTag.Placeholder pour confirmer quel bloc de construction est réellement référencé

FAQ

Où les blocs de construction sont-ils stockés dans un document?

Dans le GlossaryDocument du document, accessible via Document.GlossaryDocument, dont la propriété BuildingBlocks est un BuildingBlockCollection.

Comment trouver un bloc de construction spécifique, comme une entrée AutoText?

Appelez GlossaryDocument.GetBuildingBlock(gallery, category, name) avec le BuildingBlockGallery correspondant, la catégorie et le nom.

Puis-je ajouter de nouveaux blocs de construction de façon programmatique?

Oui — BuildingBlockCollection prend en charge Add(node) et Insert(index, node) puisque c’est un NodeCollection.

Que contrôle BuildingBlockBehavior ?

Comment le contenu du bloc de construction se fusionne-t-il dans le document lorsqu’il est inséré — en tant que Content, un Paragraph complet, ou un Page complet.

Comment un bloc de construction est-il lié au texte d’espace réservé d’une balise de document structuré ?

StructuredDocumentTag.Placeholder (et StructuredDocumentTagRangeStart.Placeholder) renvoient le BuildingBlock qui fournit le contenu de l’espace réservé d’un SDT lorsqu’il est vide.


API Reference Résumé

Classe / MéthodeDescription
Document.GlossaryDocumentLe GlossaryDocument du document, contenant tous les blocs de construction
GlossaryDocument.BuildingBlocksBuildingBlockCollection de chaque bloc de construction
GlossaryDocument.GetBuildingBlock()Recherche un bloc de construction par galerie, catégorie et nom
BuildingBlockUn CompositeNode avec Name, Gallery, Category, Behavior, Type, Sections
BuildingBlockCollectionAdd(), Insert(), Remove(), Clear(), Contains(), IndexOf()
BuildingBlockGallery / BuildingBlockType / BuildingBlockBehaviorEnums classifiant un bloc de construction
StructuredDocumentTag.PlaceholderLe BuildingBlock utilisé comme contenu de remplacement d’un SDT

Voir aussi

 Français