Travailler avec des sections

Parfois, vous souhaitez un document qui n’a pas le même formatage sur toutes les pages. Par exemple, vous devrez peut-être modifier les formats de numéro de page, avoir une taille et une orientation de page différentes, ou avoir la première page du document comme page de couverture sans aucune numérotation. Vous pouvez y parvenir avec des sections.

Les sections sont des nœuds de niveau qui contrôlent les en-têtes et pieds de page, l’orientation, les colonnes, les marges, le formatage des numéros de page, etc.

Aspose.Words vous permet de gérer les sections, de diviser un document en sections et d’apporter des modifications de formatage qui s’appliquent uniquement à une section spécifique. Aspose.Words stocke des informations sur le formatage des sections telles que les en-têtes et pieds de page, la mise en page et les paramètres de colonne dans le saut de section.

Cet article explique comment utiliser les sections et les sauts de section.

Qu’est-ce qu’une section et un saut de section

Les sections du document sont représentées par les classes Section et SectionCollection. Les objets section sont des enfants immédiats du nœud Document et sont accessibles via la propriété Sections. Vous pouvez gérer ces nœuds en utilisant certaines méthodes telles que Remove, Add, IndexOf et autres.

Le saut de section est une option qui divise les pages du document en sections avec des mises en page personnalisables.

Types de saut de section

Aspose.Words vous permet de diviser et de formater des documents en utilisant différents sauts de section de l’énumération BreakType:

  • SectionBreakContinu
  • SectionBreakNewColumn
  • SectionBreakNewPage
  • SectionBreakEvenPage
  • SectionBreakOddPage

Vous pouvez également utiliser l’énumération SectionStart pour choisir un type de saut qui s’applique uniquement à la première section, tel que NewColumn, NewPage, EvenPage et OddPage.

Gérer une rubrique

Puisqu’une section est un nœud composite normal, l’ensemble de la manipulation de nœud API peut être utilisé pour manipuler des sections: pour ajouter, supprimer et d’autres opérations sur les sections. Vous pouvez en savoir plus sur les nœuds dans l’article Aspose.Words Document Object Model (DOM).

D’un autre côté, vous pouvez également utiliser le DocumentBuilder API pour travailler avec des sections. Dans cet article, nous allons nous concentrer sur cette manière particulière de travailler avec les sections.

Insérer ou supprimer un saut de section

Aspose.Words vous permet d’insérer un saut de section dans le texte à l’aide de la méthode InsertBreak.

L’exemple de code suivant montre comment insérer un saut de section dans un document:

Utilisez la méthode Remove pour supprimer un saut de section. Si vous n’avez pas besoin de supprimer un saut de section spécifique mais de supprimer le contenu de cette section, vous pouvez utiliser la méthode ClearContent.

L’exemple de code suivant montre comment supprimer les sauts de section:

Déplacer une section

Si vous souhaitez déplacer une section d’une position à une autre dans votre document, vous devez obtenir l’index de cette section. Aspose.Words vous permet d’obtenir une position de section à partir d’un SectionCollection. Vous pouvez utiliser la propriété Sections pour obtenir toutes les sections de votre document. Mais si vous souhaitez obtenir uniquement la première section, vous pouvez utiliser la propriété FirstSection.

L’exemple de code suivant montre comment accéder à la première section et parcourir les enfants d’un nœud composite:

Spécifier une disposition de section

Parfois, vous souhaitez améliorer l’apparence de votre document en créant des mises en page créatives pour différentes sections du document. Si vous souhaitez spécifier le type de la grille de section actuelle, vous pouvez choisir un mode de disposition des sections à l’aide de l’énumération SectionLayoutMode:

  • Défaut
  • Grille
  • Grille de lignes
  • SnapToChars

L’exemple de code suivant montre comment limiter le nombre de lignes que chaque page peut contenir:

Modifier une section

Lorsque vous ajoutez une nouvelle section à votre document, vous ne pourrez modifier aucun corps ni paragraphe. Aspose.Words vous permet de garantir qu’une section contient un corps avec au moins un paragraphe en utilisant la méthode EnsureMinimum – il ajoutera automatiquement un nœud Body (ou HeaderFooter) au document puis y ajoutera un paragraphe.

L’exemple de code suivant montre comment préparer un nouveau nœud de section à l’aide de EnsureMinimum:

Ajouter ou ajouter du contenu

Si vous souhaitez dessiner une forme ou ajouter du texte ou une image au début/fin d’une section, vous pouvez utiliser les méthodes AppendContent et PrependContent de la classe Section.

L’exemple de code suivant montre comment ajouter le contenu d’une section existante:

Cloner une section

Aspose.Words vous permet de dupliquer une section en en créant une copie complète à l’aide de la méthode Clone.

L’exemple de code suivant montre comment cloner la première section de votre document:

Copier des sections entre des documents

Dans certains cas, vous pouvez avoir des documents volumineux comportant de nombreuses sections et vous souhaitez copier le contenu d’une section d’un document à un autre.

Aspose.Words vous permet de copier des sections entre des documents en utilisant la méthode ImportNode.

L’exemple de code suivant montre comment copier des sections entre des documents:

Travailler avec l’en-tête et le pied de page de section

Les règles de base pour afficher un en-tête ou un pied de page pour chaque section sont assez simples:

  1. Si la section ne possède pas ses propres en-têtes/pieds de page d’un certain type, elle est alors extraite de la section précédente.
  2. Le type d’en-tête/pied de page affiché sur la page est contrôlé par les paramètres des sections “Première page différente” et “Pages paires et impaires différentes” – s’ils sont désactivés, les titres de la section sont ignorés.

L’exemple de code suivant montre comment créer 2 sections avec des en-têtes différents:

Si vous souhaitez supprimer le texte des en-têtes et pieds de page sans supprimer les objets HeaderFooter de votre document, vous pouvez utiliser la méthode ClearHeadersFooters. De plus, vous pouvez utiliser la méthode DeleteHeaderFooterShapes pour supprimer toutes les formes des en-têtes et pieds de page de votre document.

L’exemple de code suivant montre comment effacer le contenu de tous les en-têtes et pieds de page d’une section:

L’exemple de code suivant montre comment supprimer toutes les formes de tous les en-têtes et pieds de page d’une section:

Personnaliser les propriétés de la page dans une section

Avant d’imprimer une page ou un document, vous souhaiterez peut-être personnaliser et modifier la taille et la mise en page d’une seule page ou de l’ensemble du document. Avec la mise en page, vous pouvez modifier les paramètres des pages du document tels que les marges, l’orientation et la taille pour imprimer différentes premières pages ou des pages impaires.

Aspose.Words vous permet de personnaliser les propriétés des pages et des sections à l’aide de la classe PageSetup.

L’exemple de code suivant montre comment définir des propriétés telles que la taille et l’orientation de la page pour la section actuelle:

L’exemple de code suivant montre comment modifier les propriétés de la page dans toutes les sections:

Voir également