O cabeçalho é uma seção do documento que aparece na margem superior e geralmente contém informações como número da página, data e nome do documento. Com Aspose.Words REST APIs você pode inserir número de página no documento do Word, bem como cabeçalhos de página. Por padrão, os cabeçalhos são os mesmos em cada página, mas podemos criar cabeçalhos diferentes para páginas pares e ímpares.

Este post tem como objetivo atingir o seguinte layout do documento, em que o cabeçalho da primeira página seja diferente do restante das páginas:

Inserir número de página
Inserir cabeçalho

Antes de chamar qualquer API REST do Aspose, precisamos criar uma conta Aspose Cloud e obter nossa App Key e App SID. O artigo Introdução explica como executar essas etapas.

Além disso, precisamos fazer upload do documento de amostra para o Cloud Storage, pois todas as operações no documento serão realizadas na nuvem:

// Para um exemplo completo e arquivo de dados, acesse 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";

// Carregar documento de origem para o Cloud Storage
PutCreateRequest request = new PutCreateRequest(fileName, File.OpenRead(@"c:\Data\" + fileName), null, null);
storageApi.PutCreate(request);

Inserir cabeçalho em um documento do Word

Inserir Cabeçalho Rodapé A API adiciona cabeçalhos em um documento e seu parâmetro headerFooterType pode assumir um dos seis valores a seguir:

  • HeaderFirst - Cabeçalho para a primeira página da seção.
  • HeaderPrimary - Cabeçalho primário, também usado para páginas ímpares.
  • HeaderEven - Cabeçalho para páginas pares.
  • FooterFirst - Rodapé para a primeira página da seção.
  • FooterPrimary - Rodapé primário, também usado para páginas ímpares.
  • FooterEven - Rodapé para páginas pares.

Use o valor HeaderFirst para inserir o cabeçalho na primeira página:

// Para um exemplo completo e arquivo de dados, acesse 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

// Inserir cabeçalho para a primeira página
var putHeaderFooterRequest = new PutHeaderFooterRequest(fileName, "HeaderFirst", folder);
var actual = wordsApi.PutHeaderFooter(putHeaderFooterRequest);

e valor HeaderPrimary para inserir cabeçalho no restante das páginas:

// Para um exemplo completo e arquivo de dados, acesse https://github.com/aspose-words-cloud/aspose-words-cloud-dotnet/blob/master/Examples/Aspose.Words.Cloud.Sdk.Examples/HeaderFooter/InsertHeadersAndPageNumbersToAWordDocument.cs

// Inserir cabeçalho para todas as outras páginas
var putHeaderFooterRequest = new PutHeaderFooterRequest(fileName, "HeaderPrimary", folder);
var actual = wordsApi.PutHeaderFooter(putHeaderFooterRequest);

Como o primeiro cabeçalho é diferente dos outros, defina o valor do parâmetro DifferentFirstPageHeaderFooter como true, conforme mostrado abaixo:

// Para um exemplo completo e arquivo de dados, acesse 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);

Após a execução do trecho de código acima, parágrafos vazios foram adicionados aos cabeçalhos do documento. Agora, para adicionar texto a esses cabeçalhos, usaremos a API Insert Paragraph. O código mostrado abaixo está adicionando o texto “Aspose” no primeiro cabeçalho e o texto “Cloud File Format APIs” em todos os outros cabeçalhos:

// Para um exemplo completo e arquivo de dados, acesse 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);

Aplicar formatação ao texto de um cabeçalho

A formatação pode ser aplicada ao texto de um cabeçalho usando a API Update Run Font. A API aceita o objeto fontDto em seu corpo, cujos detalhes de Resource Properties são fornecidos no artigo Update font properties for text in a Word document. O código a seguir está definindo a família de fontes do texto do cabeçalho como Verdana, o tamanho do texto como 14 e a cor do texto como preto.

// Para um exemplo completo e arquivo de dados, acesse 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" }  };

// Aplicar formatação ao cabeçalho da primeira página
var documentParagraphRunFontRequest = new PostDocumentParagraphRunFontRequest(fileName, fontDto, "sections/0/headersfooters/1/paragraphs/0", runIndex);
var actual = wordsApi.PostDocumentParagraphRunFont(documentParagraphRunFontRequest);

// Aplicar formatação ao cabeçalho de todas as outras páginas
documentParagraphRunFontRequest = new PostDocumentParagraphRunFontRequest(fileName, fontDto, "sections/0/headersfooters/0/paragraphs/0", runIndex);
actual = wordsApi.PostDocumentParagraphRunFont(documentParagraphRunFontRequest);

Depois de fazer as chamadas de API acima, o documento de entrada fica assim:

Inserir números de página em um documento do Word

A API InsertPageNumbers é usada para inserir números de página em um documento do Word. A API aceita o seguinte objeto JSON em seu corpo:

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

Como estamos adicionando números de página no cabeçalho, definiremos o valor do parâmetro IsTop como true. No entanto, para adicionar números de página no rodapé, defina o valor como false.

// Para um exemplo completo e arquivo de dados, acesse 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);

Por fim, adicionamos cabeçalhos e números de página ao documento.

Postagem sugerida:

Também recomendamos que você revise as seguintes postagens do blog para saber mais sobre: