Cómo insertar números de página personalizados desde la segunda página utilizando el nuevo método de la API de ONLYOFFICE
Las macros de ONLYOFFICE son herramientas poderosas que permiten a los usuarios ampliar la funcionalidad de los editores y personalizarlos para satisfacer necesidades específicas. En ONLYOFFICE, estamos comprometidos a mejorar continuamente nuestros productos con nuevas características. Con el lanzamiento de la versión 8.3, introdujimos una amplia gama de nuevos métodos de la API diseñados para agilizar tu flujo de trabajo. En este artículo, utilizaremos uno de estos métodos para crear una macro que inserte números de páginas personalizados en todo el documento, comenzando desde la segunda página.
Acerca del método SetStartPageNumber
El método StteStartPageNumber forma parte de la clase ApiSection. Este nuevo método te permite definir el número de página de inicio para una sección específica en un documento. A continuación, se muestra un ejemplo de su implementación:
let doc = Api.GetDocument();
let paragraph = doc.GetElement(0);
paragraph.AddText("This section starts with second page number");
paragraph.AddPageBreak();
paragraph.AddText("Third page");
paragraph.AddPageBreak();
paragraph.AddText("Fourth page");
let section = paragraph.GetSection();
section.SetStartPageNumber(2);
let header = section.GetHeader("default", true);
paragraph = header.GetElement(0);
paragraph.AddText("Page #");
paragraph.AddPageNumber();
let footer = section.GetFooter("default", true);
paragraph = footer.GetElement(0);
paragraph.AddText("Page #");
paragraph.AddPageNumber();
Más adelante en este artículo, utilizaremos este método para establecer el número de página de inicio desde la segunda página del documento.
Creación de la macro
Recuperando el documento y las secciones
La macro comienza accediendo al documento activo utilizando Api.GetDocument().
Luego, recupera la primera sección doc.GetSections()[0], que representa la primera página:
let doc = Api.GetDocument();
let firstSection = doc.GetSections()[0];
Configurando la primera página
// First Page Configuration
firstSection.SetTitlePage(true);
// Remove first page header/footer
firstSection.RemoveHeader("title");
firstSection.RemoveFooter("title");
- El método SetTitlePage(true) marca la primera página como página de título.
- RemoveHeader(“title”) y RemoveFooter(“title”) aseguran que no aparezcan encabezados ni pies de página en la página de título.
Configurando las páginas subsecuentes
// Subsequent Pages Configuration
let finalSection = doc.GetFinalSection();
finalSection.SetStartPageNumber(0); // Sets start page number. Default is 0 => 1st numbered page is 1
- La variable finalSection representa la sección en la que se aplicarán los encabezados, pies de página y la numeración de las páginas.
- SetStartPageNumber(0) asegura que la numeración comience correctamente desde la segunda página, haciendo que la primera página numerada sea la “1”.
Configurando el encabezado
// Header Configuration
let header = finalSection.GetHeader("default", true);
const headerText = header.GetElement(0);
headerText.AddPageNumber();
// Choose header justification (uncomment one):
//headerText.SetJc("left"); // Left alignment
headerText.SetJc("center"); // Center alignment
//headerText.SetJc("right"); // Right alignment
- GetHeader(“default”, true) recupera un encabezado para la sección.
- El primer elemento del encabezado se accede utilizando GetElement(0).
- AddPageNumber() inserta un número de página dinámico.
- El método SetJc() define la alineación del texto en el encabezado, posicionándolo a la izquierda, centro o derecha.
Configurando el pie de página
// Footer Configuration - uncomment for inserting a page number in the footer
let footer = finalSection.GetFooter("default", true);
const footerText = footer.GetElement(0);
footerText.AddPageNumber();
// Choose footer justification (uncomment one):
// footerText.SetJc("left"); // Left alignment
footerText.SetJc("center"); // Center alignment
// footerText.SetJc("right"); // Right alignment
- GetFooter(“default”, true) recupera un pie de página para la sección.
- El primer elemento del pie de página se accede utilizando GetElement(0).
- AddPageNumber() inserta un número de página dinámico en el pie de página.
- El método SetJc() controla la alineación del texto en el pie de página, de manera similar al encabezado.
¡Nota! Por defecto, la configuración del pie de página está comentada. Puedes alternar entre insertar numeración en el encabezado, el pie de página o en ambos simplemente comentando o descomentando la secciones correspondientes.
La macro completa es la siguiente:
let doc = Api.GetDocument();
let firstSection = doc.GetSections()[0];
// First Page Configuration
firstSection.SetTitlePage(true);
// Remove first page header/footer
firstSection.RemoveHeader("title");
firstSection.RemoveFooter("title");
// Subsequent Pages Configuration
let finalSection = doc.GetFinalSection();
finalSection.SetStartPageNumber(0); // Sets start page number. Default is 0 => 1st numbered page is 1
// Header Configuration
let header = finalSection.GetHeader("default", true);
const headerText = header.GetElement(0);
headerText.AddPageNumber();
// Choose header justification (uncomment one):
//headerText.SetJc("left"); // Left alignment
headerText.SetJc("center"); // Center alignment
//headerText.SetJc("right"); // Right alignment
// Footer Configuration - uncomment for inserting a page number in the footer
// let footer = finalSection.GetFooter("default", true);
// const footerText = footer.GetElement(0);
// footerText.AddPageNumber();
// Choose footer justification (uncomment one):
// footerText.SetJc("left"); // Left alignment
// footerText.SetJc("center"); // Center alignment
// footerText.SetJc("right"); // Right alignment
¡Ejecutemos nuestra macro y veamos cómo funciona!
Esperamos que esta macro se convierta en una adición valiosa a tu conjunto de herramientas, ayudándote a agilizar tu flujo de trabajo. En ONLYOFFICE, estamos comprometidos a ofrecer a nuestros usuarios una funcionalidad versátil y la flexibilidad para adaptarla a sus necesidades específicas.
Con el lanzamiento reciente, hemos introducido una gran cantidad de nuevos métodos en nuestra biblioteca de la API. Te animamos a explorar estas mejoras y crear tus propias macros. Si tienes alguna pregunta o sugerencia, no dudes en ponerte en contacto con nosotros. ¡Te deseamos mucha suerte en tus exploraciones!
Crea tu cuenta gratuita de ONLYOFFICE
Visualiza, edita y colabora en documentos, hojas, diapositivas, formularios y archivos PDF en línea.