El encabezado es una sección del documento que aparece en el margen superior y generalmente contiene información como el número de página, la fecha y el nombre del documento. Con Aspose.Words REST APIs puedes insertar números de página en un documento de Word, así como encabezados de página. De manera predeterminada, los encabezados son los mismos en cada página, pero podemos crear encabezados diferentes para páginas pares e impares.

En este post se pretende conseguir la siguiente disposición del documento, en la que el encabezado de la primera página sea diferente al del resto de páginas:

Insertar número de página
Insertar encabezado

Antes de llamar a cualquier API REST de Aspose, debemos crear una cuenta de Aspose Cloud y obtener nuestra clave de aplicación y SID de aplicación. El artículo Introducción explica cómo realizar estos pasos.

Además, necesitamos cargar el documento de muestra en el Almacenamiento en la nube ya que todas las operaciones en el documento se realizarán en la nube:

// Para obtener un ejemplo completo y un archivo de datos, vaya a 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";

// Subir documento fuente al almacenamiento en la nube
PutCreateRequest request = new PutCreateRequest(fileName, File.OpenRead(@"c:\Data\" + fileName), null, null);
storageApi.PutCreate(request);

Insertar encabezado en un documento de Word

Insertar encabezado y pie de página La API agrega encabezados a un documento y su parámetro headerFooterType puede tomar uno de los siguientes seis valores:

  • HeaderFirst - Encabezado para la primera página de la sección.
  • HeaderPrimary - Encabezado principal, también se utiliza para páginas impares.
  • HeaderEven - Encabezado para páginas pares.
  • FooterFirst - Pie de página para la primera página de la sección.
  • FooterPrimary - Pie de página principal, también se utiliza para páginas impares.
  • FooterEven - Pie de página para páginas pares.

Utilice el valor HeaderFirst para insertar el encabezado en la primera página:

// Para obtener un ejemplo completo y un archivo de datos, vaya a 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

// Insertar encabezado para la primera página
var putHeaderFooterRequest = new PutHeaderFooterRequest(fileName, "HeaderFirst", folder);
var actual = wordsApi.PutHeaderFooter(putHeaderFooterRequest);

y el valor HeaderPrimary para insertar el encabezado en el resto de las páginas:

// Para obtener un ejemplo completo y un archivo de datos, vaya a https://github.com/aspose-words-cloud/aspose-words-cloud-dotnet/blob/master/Examples/Aspose.Words.Cloud.Sdk.Examples/HeaderFooter/InsertHeadersAndPageNumbersToAWordDocument.cs

// Insertar encabezado para todas las demás páginas
var putHeaderFooterRequest = new PutHeaderFooterRequest(fileName, "HeaderPrimary", folder);
var actual = wordsApi.PutHeaderFooter(putHeaderFooterRequest);

Dado que el primer encabezado es diferente de los demás, establezca el valor del parámetro DifferentFirstPageHeaderFooter en verdadero como se muestra a continuación:

// Para obtener un ejemplo completo y un archivo de datos, vaya a 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);

Después de ejecutar el fragmento de código anterior, se agregaron párrafos vacíos a los encabezados del documento. Ahora, para agregar texto a estos encabezados, usaremos la API Insert Paragraph. El código que se muestra a continuación agrega el texto “Aspose” en el primer encabezado y el texto “Cloud File Format APIs” en todos los demás encabezados:

// Para obtener un ejemplo completo y un archivo de datos, vaya a 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 formato al texto de un encabezado

Se puede aplicar formato al texto de un encabezado mediante la API Actualizar fuente de ejecución. La API acepta el objeto fontDto en su cuerpo, cuyos detalles de las propiedades de recurso se proporcionan en el artículo Actualizar propiedades de fuente para texto en un documento de Word. El siguiente código establece la familia de fuentes del texto del encabezado en Verdana, el tamaño del texto en 14 y el color del texto en negro.

// Para obtener un ejemplo completo y un archivo de datos, vaya a 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 formato al encabezado de la primera página
var documentParagraphRunFontRequest = new PostDocumentParagraphRunFontRequest(fileName, fontDto, "sections/0/headersfooters/1/paragraphs/0", runIndex);
var actual = wordsApi.PostDocumentParagraphRunFont(documentParagraphRunFontRequest);

// Aplicar formato al encabezado de todas las demás páginas
documentParagraphRunFontRequest = new PostDocumentParagraphRunFontRequest(fileName, fontDto, "sections/0/headersfooters/0/paragraphs/0", runIndex);
actual = wordsApi.PostDocumentParagraphRunFont(documentParagraphRunFontRequest);

Después de realizar las llamadas API anteriores, el documento de entrada se ve de la siguiente manera:

Insertar números de página en un documento de Word

La API InsertPageNumbers se utiliza para insertar números de página en un documento de Word. La API acepta el siguiente objeto JSON en su cuerpo:

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

Dado que estamos agregando números de página en el encabezado, estableceremos el valor del parámetro IsTop en verdadero. Sin embargo, para agregar números de página en el pie de página, establezca el valor en falso.

// Para obtener un ejemplo completo y un archivo de datos, vaya a 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 último, hemos añadido encabezados y números de página al documento.

Publicación sugerida:

También recomendamos revisar las siguientes publicaciones del blog para obtener más información sobre: