Como inserir números de página personalizados da segunda página usando o novo método da API do ONLYOFFICE
As macros do ONLYOFFICE são ferramentas poderosas que permitem aos usuários estender a funcionalidade dos editores e personalizá-los para atender a necessidades específicas. No ONLYOFFICE, estamos comprometidos em aprimorar continuamente nossos produtos com novos recursos. Com o lançamento do versão 8.3, introduzimos uma ampla gama de novos métodos de API projetados para simplificar seu fluxo de trabalho. Nesta postagem do blog, usaremos um desses métodos para criar uma macro que insere números de página personalizados em todo o documento, começando pela segunda página.
Sobre o método SetStartPageNumber
O método SetStartPageNumber é parte da classe ApiSection. Este novo método permite que você defina o número da página inicial para uma seção específica em um documento. Abaixo está um exemplo de sua implementação:
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();
Mais adiante neste post do blog, usaremos este método para definir o número da página inicial para a segunda página do documento.
Construindo a macro
Recuperando o documento e as seções
A macro começa acessando o documento ativo usando Api.GetDocument().
Ele recupera a primeira seção usando doc.GetSections()[0], que representa a primeira página:
let doc = Api.GetDocument();
let firstSection = doc.GetSections()[0];
Configurando a primeira página
// First Page Configuration
firstSection.SetTitlePage(true);
// Remove first page header/footer
firstSection.RemoveHeader("title");
firstSection.RemoveFooter("title");
- SetTitlePage(true) marca a primeira página como página de título.
- RemoveHeader(“title”) e RemoveFooter(“title”) garantir que nenhum cabeçalho ou rodapé apareça na página de título.
Configurando páginas subsequentes
// Subsequent Pages Configuration
let finalSection = doc.GetFinalSection();
finalSection.SetStartPageNumber(0); // Sets start page number. Default is 0 => 1st numbered page is 1
- A variável finalSection representa a seção onde cabeçalhos, rodapés e numeração de páginas serão aplicados.
- SetStartPageNumber(0) garante que a numeração comece corretamente a partir da segunda página, tornando a primeira página numerada “1”.
Configurando o cabeçalho
// 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) retrieves a header for the section.
- O primeiro elemento do cabeçalho é acessado usando GetElement(0).
- AddPageNumber() insere um número de página dinâmico.
- O método SetJc() define o alinhamento do texto do cabeçalho, posicionando-o à esquerda, ao centro ou à direita.
Configurando o rodapé
// 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 um rodapé para a seção.
- O primeiro elemento do rodapé é acessado usando GetElement(0).
- AddPageNumber() insere um número de página dinâmico no rodapé.
- O método SetJc() controla o alinhamento do texto do rodapé, semelhante ao do cabeçalho.
Nota! Por padrão, a configuração do rodapé é comentada. Você pode alternar entre inserir numeração no cabeçalho, rodapé ou ambos, simplesmente comentando ou descomentando as seções relevantes.
A macro completa é a seguinte:
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
Vamos executar nossa macro e ver como ela funciona!
Esperamos que esta macro se torne uma adição valiosa ao seu kit de ferramentas, ajudando você a otimizar seu fluxo de trabalho. No ONLYOFFICE, estamos comprometidos em fornecer aos nossos usuários funcionalidade versátil e a flexibilidade para adaptá-la às suas necessidades específicas.
Com o lançamento recente, introduzimos uma riqueza de novos métodos para nossa biblioteca de API. Nós encorajamos você a explorar essas melhorias e criar suas próprias macros. Se você tiver alguma dúvida ou sugestão, sinta-se à vontade para o conversar conosco. Boa sorte em seus esforços exploratórios!
Crie sua conta gratuita no ONLYOFFICE
Visualize, edite e colabore em documentos, planilhas, slides, formulários e arquivos PDF online.