L’en-tête est une section du document qui apparaît dans la marge supérieure et contient généralement des informations telles que le numéro de page, la date et le nom du document. Avec les API REST Aspose.Words, vous pouvez insérer le numéro de page dans un document Word ainsi que les en-têtes de page. Par défaut, les en-têtes sont les mêmes sur chaque page, mais nous pouvons créer des en-têtes différents pour les pages paires et impaires.

Cet article vise à obtenir la présentation suivante du document, dans laquelle l’en-tête de la première page est différent du reste des pages :

Insérer le numéro de page
Insérer un en-tête

Avant d’appeler une API REST Aspose, nous devons créer un compte Aspose Cloud et obtenir notre clé d’application et notre SID d’application. L’article Mise en route explique comment effectuer ces étapes.

De plus, nous devons télécharger l’exemple de document sur le Cloud Storage car toutes les opérations sur le document seront effectuées dans le Cloud :

// Pour un exemple complet et un fichier de données, veuillez consulter https://github.com/aspose-words-cloud/aspose-words-cloud-dotnet/blob/master/Examples/Aspose.Words.Cloud.Sdk.Examples/HeaderFooter/InsertHeadersAndPageNumbersToAWordDocument.cs

string MyAppKey = ""; // Get AppKey and AppSID from https://dashboard.aspose.cloud/
string MyAppSid = ""; // Get AppKey and AppSID from https://dashboard.aspose.cloud/

StorageApi storageApi = new StorageApi(MyAppKey, MyAppSid);

string fileName = "Sample-Document.docx";

// Télécharger le document source sur le stockage cloud
PutCreateRequest request = new PutCreateRequest(fileName, File.OpenRead(@"c:\Data\" + fileName), null, null);
storageApi.PutCreate(request);

Insérer un en-tête dans un document Word

Insérer un en-tête, un pied de page L’API ajoute des en-têtes dans un document et son paramètre headerFooterType peut prendre l’une des six valeurs suivantes :

  • HeaderFirst - En-tête de la première page de la section.
  • HeaderPrimary - En-tête principal, également utilisé pour les pages impaires.
  • HeaderEven - En-tête pour les pages paires.
  • FooterFirst - Pied de page de la première page de la section.
  • FooterPrimary - Pied de page principal, également utilisé pour les pages impaires.
  • FooterEven - Pied de page pour les pages paires.

Veuillez utiliser la valeur HeaderFirst pour insérer un en-tête dans la première page :

// Pour un exemple complet et un fichier de données, veuillez consulter https://github.com/aspose-words-cloud/aspose-words-cloud-dotnet/blob/master/Examples/Aspose.Words.Cloud.Sdk.Examples/HeaderFooter/InsertHeadersAndPageNumbersToAWordDocument.cs

string MyAppKey = ""; // Get AppKey and AppSID from https://dashboard.aspose.cloud/
string MyAppSid = ""; // Get AppKey and AppSID from https://dashboard.aspose.cloud/

WordsApi wordsApi = new WordsApi(MyAppKey, MyAppSid);

string fileName = "Sample-Document.docx";
string folder = null; // File exists at the root of the storage

// Insérer un en-tête pour la première page
var putHeaderFooterRequest = new PutHeaderFooterRequest(fileName, "HeaderFirst", folder);
var actual = wordsApi.PutHeaderFooter(putHeaderFooterRequest);

et la valeur HeaderPrimary pour insérer l’en-tête dans le reste des pages :

// Pour un exemple complet et un fichier de données, veuillez consulter https://github.com/aspose-words-cloud/aspose-words-cloud-dotnet/blob/master/Examples/Aspose.Words.Cloud.Sdk.Examples/HeaderFooter/InsertHeadersAndPageNumbersToAWordDocument.cs

// Insérer un en-tête pour toutes les autres pages
var putHeaderFooterRequest = new PutHeaderFooterRequest(fileName, "HeaderPrimary", folder);
var actual = wordsApi.PutHeaderFooter(putHeaderFooterRequest);

Étant donné que le premier en-tête est différent des autres, définissez la valeur du paramètre DifferentFirstPageHeaderFooter sur true comme indiqué ci-dessous :

// Pour un exemple complet et un fichier de données, veuillez consulter https://github.com/aspose-words-cloud/aspose-words-cloud-dotnet/blob/master/Examples/Aspose.Words.Cloud.Sdk.Examples/HeaderFooter/InsertHeadersAndPageNumbersToAWordDocument.cs

var sectionIndex = 0;
var body = new PageSetup
{
    DifferentFirstPageHeaderFooter = true
};

var pageSetupRequest = new UpdateSectionPageSetupRequest(fileName, sectionIndex, body);
var actual = wordsApi.UpdateSectionPageSetup(pageSetupRequest);

Après l’exécution de l’extrait de code ci-dessus, des paragraphes vides ont été ajoutés aux en-têtes du document. Maintenant, pour ajouter du texte à ces en-têtes, nous allons utiliser l’API Insert Paragraph. Le code ci-dessous ajoute du texte « Aspose » dans le premier en-tête et du texte « Cloud File Format APIs » dans tous les autres en-têtes :

// Pour un exemple complet et un fichier de données, veuillez consulter https://github.com/aspose-words-cloud/aspose-words-cloud-dotnet/blob/master/Examples/Aspose.Words.Cloud.Sdk.Examples/HeaderFooter/InsertHeadersAndPageNumbersToAWordDocument.cs

var run = new Run { Text = "ASPOSE" };
            
var runRequest = new PutRunRequest(fileName, "sections/0/headersfooters/1/paragraphs/0", run);
var actual = wordsApi.PutRun(runRequest);

Appliquer une mise en forme au texte d’un en-tête

Le formatage peut être appliqué au texte d’un en-tête à l’aide de l’API Update Run Font. L’API accepte l’objet fontDto dans son corps, dont les détails des propriétés de ressources sont donnés dans l’article Update font properties for text in a Word document. Le code suivant définit la famille de polices du texte d’en-tête sur Verdana, la taille du texte sur 14 et la couleur du texte sur noir.

// Pour un exemple complet et un fichier de données, veuillez consulter https://github.com/aspose-words-cloud/aspose-words-cloud-dotnet/blob/master/Examples/Aspose.Words.Cloud.Sdk.Examples/HeaderFooter/InsertHeadersAndPageNumbersToAWordDocument.cs

var runIndex = 0;
var fontDto = new Font { Bold = true, Name = "Verdana", Size = 14, Color = new XmlColor { Web = "#000000" }  };

// Appliquer la mise en forme à l'en-tête de la première page
var documentParagraphRunFontRequest = new PostDocumentParagraphRunFontRequest(fileName, fontDto, "sections/0/headersfooters/1/paragraphs/0", runIndex);
var actual = wordsApi.PostDocumentParagraphRunFont(documentParagraphRunFontRequest);

// Appliquer la mise en forme à l'en-tête de toutes les autres pages
documentParagraphRunFontRequest = new PostDocumentParagraphRunFontRequest(fileName, fontDto, "sections/0/headersfooters/0/paragraphs/0", runIndex);
actual = wordsApi.PostDocumentParagraphRunFont(documentParagraphRunFontRequest);

Après avoir effectué les appels d’API ci-dessus, le document d’entrée ressemble à ceci :

Insérer des numéros de page dans un document Word

L’API InsertPageNumbers permet d’insérer des numéros de page dans un document Word. L’API accepte l’objet JSON suivant dans son corps :

{
  "Format": "string",
  "Alignment": "string",
  "IsTop": true,
  "SetPageNumberOnFirstPage": true
}

Comme nous ajoutons des numéros de page dans l’en-tête, nous allons définir la valeur du paramètre IsTop sur true. Cependant, pour ajouter des numéros de page dans le pied de page, définissez la valeur sur false.

// Pour un exemple complet et un fichier de données, veuillez consulter https://github.com/aspose-words-cloud/aspose-words-cloud-dotnet/blob/master/Examples/Aspose.Words.Cloud.Sdk.Examples/HeaderFooter/InsertHeadersAndPageNumbersToAWordDocument.cs

var body = new PageNumber { Alignment = "right", Format = "{PAGE} of {NUMPAGES}", IsTop = true, SetPageNumberOnFirstPage = true };

var insertPageNumbersRequest = new PostInsertPageNumbersRequest(fileName, body);
var actual = wordsApi.PostInsertPageNumbers(insertPageNumbersRequest);

Enfin, nous avons ajouté des en-têtes et des numéros de page au document.

Publication suggérée :

Nous vous recommandons également de consulter les articles de blog suivants pour en savoir plus sur :