L’en-tête et le pied de page sont couramment utilisés dans les documents pour afficher des informations importantes telles que le numéro de page, le sujet, le chapitre, etc. Vous pouvez ajouter, insérer, supprimer ou supprimer l’en-tête et le pied de page dans les documents Word DOCX DOC en utilisant vos applications Java. Dans cet article, nous apprendrons comment ajouter ou supprimer des en-têtes et des pieds de page. Voici les sujets que nous allons explorer en détail :

Insérer ou supprimer l’API de pied de page d’en-tête - Installation

Pour travailler avec l’en-tête et le pied de page dans les documents Word, nous utiliserons l’API Aspose.Words for Java où de simples appels d’API nous aideront à atteindre les exigences. Vous pouvez télécharger le fichier JAR à partir de la section des versions, ou copier les configurations Maven suivantes dans votre projet. L’API sera configurée via le référentiel Maven et vous pourrez passer aux étapes suivantes expliquées dans cet article.

Repository:

<repositories>
    <repository>
        <id>AsposeJavaAPI</id>
        <name>Aspose Java API</name>
        <url>https://repository.aspose.com/repo/</url>
    </repository>
</repositories>

Dependency:

<dependencies>
    <dependency>
        <groupId>com.aspose</groupId>
        <artifactId>aspose-words</artifactId>
        <version>20.8</version>
        <classifier>jdk17</classifier>
    </dependency>
    <dependency>
        <groupId>com.aspose</groupId>
        <artifactId>aspose-words</artifactId>
        <version>20.8</version>
        <classifier>javadoc</classifier>
    </dependency>
</dependencies>

Ajouter un en-tête et un pied de page dans un document Word (DOCX/DOC) à l’aide de Java

L’ajout d’un en-tête et d’un pied de page dans des documents Word (DOCX/DOC) est un cas d’utilisation basique mais important de l’utilisation de documents de traitement de texte. Cependant, différents scénarios sont possibles. Par exemple, vous devrez peut-être ajouter une image, un tableau ou seulement du texte dans la section d’en-tête et de pied de page. De plus, l’en-tête et le pied de page sont parfois différents sur la page de titre par rapport aux autres pages. Parfois, l’en-tête et le pied de page sont différents sur les numéros de page pairs et différents sur les numéros de page impairs. Par conséquent, nous avons créé un exemple concis et basique d’ajout d’en-tête et de pied de page dans des documents Word.

Ici, nous allons insérer un en-tête de pied de page différent sur la page de titre (toute première page) et un en-tête de pied de page différent sur la page suivante. Tandis que la deuxième page aura un en-tête de pied de page personnalisé comprenant une image, du texte et un élément de tableau. Vous devez suivre les étapes ci-dessous pour ajouter ou insérer un en-tête et un pied de page dans des documents Word (DOCX/DOC) à l’aide de Java.

  1. Initialiser les objets de classe Document et DocumentBuilder
  2. Spécifiez que vous voulez un en-tête de pied de page différent pour la page de titre
  3. Définir les propriétés de la police pour le texte de l’en-tête
  4. Créer un en-tête et pour les pages suivantes
  5. Insérer un tableau et définir le format du numéro de page
  6. Enregistrer le fichier DOCX de sortie

Le code suivant est basé sur ces étapes qui montrent comment ajouter un en-tête et un pied de page dans des documents Word (DOCX/DOC) par programmation à l’aide de Java :

Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

Section currentSection = builder.getCurrentSection();
PageSetup pageSetup = currentSection.getPageSetup();

// Spécifiez si nous voulons que les en-têtes/pieds de page de la première page soient différents des autres pages.
// Vous pouvez également utiliser la propriété PageSetup.OddAndEvenPagesHeaderFooter pour spécifier
// différents en-têtes/pieds de page pour les pages paires et impaires.
pageSetup.setDifferentFirstPageHeaderFooter(true);

// --- Créer un en-tête pour la première page. ---
pageSetup.setHeaderDistance(20);
builder.moveToHeaderFooter(HeaderFooterType.HEADER_FIRST);
builder.getParagraphFormat().setAlignment(ParagraphAlignment.CENTER);

// Définissez les propriétés de la police pour le texte de l'en-tête.
builder.getFont().setName("Arial");
builder.getFont().setBold(true);
builder.getFont().setSize(14);
// Spécifiez le titre de l'en-tête pour la première page.
builder.write("Aspose.Words Header/Footer Creation - Title Page.");

// --- Créer un en-tête pour les pages autres que la première. ---
pageSetup.setHeaderDistance(20);
builder.moveToHeaderFooter(HeaderFooterType.HEADER_PRIMARY);

// Insérez l'image en position absolue dans le coin supérieur/gauche de l'en-tête.
// La distance des bords supérieur/gauche de la page est définie sur 10 points.
String imageFileName = dataDir + "Aspose.Words.gif";
builder.insertImage(imageFileName, RelativeHorizontalPosition.PAGE, 10, RelativeVerticalPosition.PAGE, 10, 50, 50, WrapType.THROUGH);

builder.getParagraphFormat().setAlignment(ParagraphAlignment.RIGHT);
// Spécifiez un autre titre d'en-tête pour les autres pages.
builder.write("Aspose.Words Header/Footer Creation");

// --- Créer un pied de page pour les pages autres que la première. ---
builder.moveToHeaderFooter(HeaderFooterType.FOOTER_PRIMARY);

// Nous utilisons un tableau à deux cellules pour faire une partie du texte sur la ligne (avec numérotation des pages)
// à aligner à gauche, et l'autre partie du texte (avec copyright) à aligner à droite.
builder.startTable();

// Effacer les bordures du tableau
builder.getCellFormat().clearFormatting();

builder.insertCell();
// Définissez la première cellule sur 1/3 de la largeur de la page.
builder.getCellFormat().setPreferredWidth(PreferredWidth.fromPercent(100 / 3));

// Insérez ici le texte de numérotation des pages.
// Il utilise les champs PAGE et NUMPAGES pour calculer automatiquement le numéro de page actuel et le nombre total de pages.
builder.write("Page ");
builder.insertField("PAGE", "");
builder.write(" of ");
builder.insertField("NUMPAGES", "");

// Alignez ce texte à gauche.
builder.getCurrentParagraph().getParagraphFormat().setAlignment(ParagraphAlignment.LEFT);

builder.insertCell();
// Définissez la deuxième cellule sur les 2/3 de la largeur de la page.
builder.getCellFormat().setPreferredWidth(PreferredWidth.fromPercent(100 * 2 / 3));

builder.write("(C) 2020 Aspose Pty Ltd. All rights reserved.");

// Alignez ce texte à droite.
builder.getCurrentParagraph().getParagraphFormat().setAlignment(ParagraphAlignment.RIGHT);

builder.endRow();
builder.endTable();

builder.moveToDocumentEnd();
// Faites un saut de page pour créer une deuxième page sur laquelle les principaux en-têtes/pieds de page seront visibles.
builder.insertBreak(BreakType.PAGE_BREAK);

// Enregistrez le document résultant.
doc.save(dataDir + "HeaderFooter_Out.docx");

Jusqu’à présent, nous avons appris à ajouter ou à insérer un en-tête et un pied de page dans des fichiers Word. Vous trouverez ci-dessous une capture d’écran de l’apparence de la sortie lorsque vous la voyez via l’option Aperçu avant impression.

Cette fonctionnalité peut être très utile lorsque différents documents DOC/DOCX sont traités par vos applications où vous souhaitez ajouter du contenu en tant que pied de page d’en-tête des documents de sortie.

Ajouter ou supprimer un en-tête de pied de page

Passons à la vérification de la suppression de l’en-tête et du pied de page des fichiers MS Word (DOCX/DOC).

Supprimer l’en-tête et le pied de page du document Word (DOCX/DOC) à l’aide de Java

Vous pouvez supprimer l’en-tête ainsi que le pied de page des documents Word à l’aide de l’API Aspose.Words for Java. Comme indiqué ci-dessus, il peut y avoir trois types différents d’en-tête et de pied de page ajoutés dans un document. Par exemple, sur la page de titre, sur les pages paires et les numéros de page impairs. Vous pouvez supprimer tous les en-têtes et pieds de page d’un fichier Word simplement en suivant les étapes ci-dessous :

  1. Charger le fichier DOCX/DOC source
  2. Rechercher l’en-tête et le pied de page sur la page de titre, les numéros de page pairs et les numéros de page impairs
  3. Supprimer la section requise lorsqu’elle est trouvée
  4. Enregistrer le fichier DOCX de sortie

Le code ci-dessous suit ces étapes et montre comment supprimer l’en-tête et le pied de page dans les documents Word à l’aide de Java :

Document doc = new Document(dataDir + "HeaderFooter.doc");
for (Section section : doc.getSections()) {
	// Jusqu'à trois pieds de page d'en-tête différents sont possibles dans une section (pour les premières pages, paires et impaires).
	// Nous les vérifions et les supprimons tous.
	HeaderFooter footer;
        HeaderFooter header;

	footer = section.getHeadersFooters().getByHeaderFooterType(HeaderFooterType.FOOTER_FIRST);
       	header = section.getHeadersFooters().getByHeaderFooterType(HeaderFooterType.HEADER_FIRST);
        
        
	if (footer != null)
		footer.remove();
        
        	if (header != null)
		header.remove();

	// Le pied de page d'en-tête principal est utilisé pour les pages impaires.
	footer = section.getHeadersFooters().getByHeaderFooterType(HeaderFooterType.FOOTER_PRIMARY);
	if (footer != null)
		footer.remove();
        
        header = section.getHeadersFooters().getByHeaderFooterType(HeaderFooterType.HEADER_PRIMARY);
	if (header != null)
		header.remove();

	footer = section.getHeadersFooters().getByHeaderFooterType(HeaderFooterType.FOOTER_EVEN);
	if (footer != null)
		footer.remove();
        
       	header = section.getHeadersFooters().getByHeaderFooterType(HeaderFooterType.HEADER_EVEN);
	if (header != null)
		header.remove();
}

doc.save(dataDir + "RemoveHeaderFooter_Out.docx");

Supprimer le pied de page du document Word (DOCX/DOC) à l’aide de Java

Nous avons déjà expliqué comment supprimer ou supprimer l’en-tête et le pied de page des fichiers Word. Cependant, vous souhaiterez peut-être supprimer uniquement les pieds de page d’un document Word tout en laissant l’en-tête intact. Ces exigences sont facilement réalisables avec les étapes suivantes :

  1. Charger le fichier Word source (DOCX/DOC)
  2. Parcourez chaque section du document Word
  3. Initialiser l’objet HeaderFooter
  4. Supprimer le pied de page du fichier d’entrée
  5. Enregistrer le fichier DOCX/DOC mis à jour

L’extrait de code suivant explique comment supprimer le pied de page d’un document Word à l’aide de Java :

Document doc = new Document(dataDir + "HeaderFooter.doc");
for (Section section : doc.getSections()) {
	// Jusqu'à trois pieds de page différents sont possibles dans une section (pour les premières pages, paires et impaires).
	// Nous les vérifions et les supprimons tous.
	HeaderFooter footer;

	footer = section.getHeadersFooters().getByHeaderFooterType(HeaderFooterType.FOOTER_FIRST);
	if (footer != null)
		footer.remove();

	// Le pied de page principal est le pied de page utilisé pour les pages impaires.
	footer = section.getHeadersFooters().getByHeaderFooterType(HeaderFooterType.FOOTER_PRIMARY);
	if (footer != null)
		footer.remove();

	footer = section.getHeadersFooters().getByHeaderFooterType(HeaderFooterType.FOOTER_EVEN);
	if (footer != null)
		footer.remove();
}
doc.save(dataDir + "RemoveFooters.docx");

Supprimer l’en-tête du document Word (DOCX/DOC) à l’aide de Java

Depuis que nous avons appris à supprimer ou à supprimer uniquement le pied de page des fichiers MS Word. Explorons cette autre étape plus loin où vous devrez peut-être supprimer uniquement les en-têtes des documents Word. Les pieds de page resteront les mêmes et ne seront pas affectés car notre objectif ici est de supprimer uniquement les en-têtes. Les étapes suivantes donnent un aperçu de la procédure à adopter à cette fin :

  1. Charger le fichier Word d’entrée (DOCX/DOC)
  2. Initialiser une instance de la classe HeaderFooter
  3. Supprimer les en-têtes de toutes les sections du document d’entrée
  4. Enregistrer le fichier DOCX de mise à jour

Le code ci-dessous montre comment supprimer ou supprimer l’en-tête des documents Word à l’aide de Java :

Document doc = new Document(dataDir + "HeaderFooter.doc");
for (Section section : doc.getSections()) {
	// Jusqu'à trois pieds de page différents sont possibles dans une section (pour les premières pages, paires et impaires).
	// Nous les vérifions et les supprimons tous.
	HeaderFooter header;

	header = section.getHeadersFooters().getByHeaderFooterType(HeaderFooterType.HEADER_FIRST);
	if (header != null)
		header.remove();

	// Le pied de page principal est le pied de page utilisé pour les pages impaires.
	header = section.getHeadersFooters().getByHeaderFooterType(HeaderFooterType.HEADER_PRIMARY);
	if (header != null)
		header.remove();

	header = section.getHeadersFooters().getByHeaderFooterType(HeaderFooterType.HEADER_EVEN);
	if (header != null)
		header.remove();
}
doc.save(dataDir + "RemoveHeader.docx");

Conclusion

Ajouter, insérer, supprimer ou supprimer l’en-tête et le pied de page dans les documents Word est un cas d’utilisation très important et fréquent du traitement de texte. Presque tous les documents contiennent des en-têtes et des pieds de page, qui peuvent être manipulés avec l’API Aspose.Words for Java selon vos besoins. Cet article est un aperçu des fonctionnalités associées où vous pouvez discuter de tout cas d’utilisation personnalisé et de toutes les exigences avec nous via Forums d’assistance gratuits. N’hésitez pas à nous contacter pour toute question et préoccupation.

Voir également