Comprender las secciones y cómo utilizarlas

Cuando se crea un documento por primera vez, por defecto sólo incluye una sección. Esta Sección por defecto incluye los 3 tipos de encabezado/pie (Primero, Par e Impar), así como los parámetros de formato por defecto. Cuando se añade una nueva Sección a un Documento, ésta se añade al final del Documento, y comienza en una nueva página (una página dada nunca tendrá 2 Secciones superpuestas en ella).

Más información Xceed Words para .NET

En el artículo anterior, vimos los fundamentos de la creación de un documento docx utilizando la función CreeCargaAhorra y Guardar como así como la forma de añadir párrafos y añadirles un poco de texto.

Antes de entrar en qué otros elementos pueden añadirse a un documento, aprenderemos primero qué son las Secciones.

Introducción

Cuando se crea un documento por primera vez, por defecto sólo incluye una sección. Esta Sección por defecto incluye los 3 tipos de encabezado/pie (Primero, Par e Impar), así como los parámetros de formato por defecto.

Cuando se añade una nueva Sección a un Documento, se añade al final del Documento y comienza en una nueva página (una página dada nunca tendrá 2 Secciones superpuestas en ella).

Por qué utilizar diferentes Secciones

Para entender por qué puede querer tener más de una Sección en su Documento, veamos una lista de algunas de las propiedades útiles que puede personalizar en cada Sección:

  • Encabezados / pies de página
  • Márgenes (superior, inferior, izquierdo, derecho, cabecera, pie de página, márgenes de espejo)
  • Configuración de la página (altura, anchura, bordes, diseño, inicio del número)
  • y mucho más (hipervínculos, listas, imágenes, formas, tablas, etc.)

Si tiene un documento en el que hay grupos de páginas para los que desearía diferentes conjuntos de valores para estas propiedades, pondría cada grupo de páginas en su propia Sección.

Por ejemplo: un manual de usuario con Secciones para la portada, el Índice, los capítulos que componen el cuerpo principal y, por último, para las páginas de conclusiones y/o anexos al final:

  1. Portada: sólo un título principal centrado en la pantalla, sin encabezados/pies de página.
  2. Tabla de contenido: encabezados/pies de página personalizados #1, las páginas cuentan pero no se muestran los números.
  3. Contenido principal: cabeceras/pies de página personalizados #2, las páginas cuentan y ahora se muestran los números.
  4. Páginas de conclusiones/anexos: cabeceras/pies de página personalizados #3

Recuperación de las Secciones existentes

 Para recuperar la lista de Secciones existentes de un Documento, llamamos a su ObtenerSecciones método:

// Open an existing document
using( var document = DocX.Load( "ExistingDocument.docx" ) )
{
	var sections = document.GetSections();
	// ...
}

Añadir nuevas secciones

Para añadir una nueva Sección a un Documento, llamamos a la función InsertarSecciónSaltoDePágina método.

A continuación se muestra un ejemplo más completo que también demuestra cómo se pueden personalizar las Secciones a través de algunas de sus propiedades.

En primer lugar, vamos a crear un nuevo documento, y hacer cambios en la Sección por defecto: 

using( var document = DocX.Create( "InsertSections.docx" ) )
{
	// Different odd and even pages headers/footers
	document.DifferentOddAndEvenPages = true;

	// Section 1 – Set footers
	document.Sections[0].AddFooters();
	document.Sections[0].DifferentFirstPage = true;
	var footers = document.Sections[ 0 ].Footers;
	footers.First.InsertParagraph( "This is the First page footer." );
	footers.Even.InsertParagraph( "This is the Even page footer." );
	footers.Odd.InsertParagraph( "This is the Odd page footer." );

	// Section 1 - Add paragraphs and page breaks
	document.InsertParagraph( "FIRST" ).InsertPageBreakAfterSelf();
	document.InsertParagraph( "SECOND" ).InsertPageBreakAfterSelf();
	document.InsertParagraph( "THIRD" );

A continuación, vamos a añadir otra Sección y darle un tamaño de página diferente:

	// Add a Section Break to end the previous section and add a new one
	// The new section’s properties will be based on the last section’s properties
	document.InsertSectionPageBreak();

	// Section 2 - Set page parameters
	document.Sections[ 1 ].PageWidth = 200f;
	document.Sections[ 1 ].PageHeight = 300f;

	// Section 2 - Set footers
	document.Sections[ 1 ].AddFooters();
	document.Sections[ 1 ].DifferentFirstPage = true;
	var footers2 = document.Sections[ 1 ].Footers;
	footers2.First.InsertParagraph( "This is the First page footer of Section 2." );
	footers2.Odd.InsertParagraph( "This is the Odd page footer of Section 2." );
	footers2.Even.InsertParagraph( "This is the Even page footer of Section 2." );

	// Section 2 - Add paragraphs and page breaks
	document.InsertParagraph( "FOURTH" ).InsertPageBreakAfterSelf();
	document.InsertParagraph( "FIFTH" ).InsertPageBreakAfterSelf();
	document.InsertParagraph( "SIXTH" );

Por último, añadamos una última Sección, démosle un nuevo tamaño de página y márgenes personalizados:

	// Add a Section Break to end the previous section and add a new one
	// The new section’s properties will be based on the last section’s properties
	document.InsertSectionPageBreak();

	// Section 3 - Set page and margin parameters
	document.Sections[ 2 ].PageWidth = 595f;
	document.Sections[ 2 ].PageHeight = 841f;
	document.Sections[ 2 ].MarginTop = 300f;
	document.Sections[ 2 ].MarginFooter = 120f;

	// Section 3 - Set footers
	document.Sections[ 2 ].AddFooters();
	document.Sections[ 2 ].DifferentFirstPage = true;
	var footers3 = document.Sections[ 2 ].Footers;
	footers3.First.InsertParagraph( "This is the First page footer of Section 3." );
	footers3.Odd.InsertParagraph( "This is the Odd page footer of Section 3." );
	footers3.Even.InsertParagraph( "This is the Even page footer of Section 3." );

	// Section 3 - Add paragraphs and page breaks
	document.InsertParagraph( "SEVENTH" ).InsertPageBreakAfterSelf();
	document.InsertParagraph( "EIGHTH" ).InsertPageBreakAfterSelf();
	document.InsertParagraph( "NINTH" );

	// Save this document to disk.
	document.Save();
}

Para más información, consulte el documentación