Come inserire numeri di pagina personalizzati dalla seconda pagina utilizzando il nuovo metodo API ONLYOFFICE

19 febbraio 2025Da Alice

Le macro di ONLYOFFICE sono strumenti potenti che consentono agli utenti di estendere la funzionalità degli editor e personalizzarli per soddisfare esigenze specifiche. In ONLYOFFICE, ci impegniamo a migliorare continuamente i nostri prodotti con nuove funzionalità. Con il rilascio della versione 8.3, abbiamo introdotto una vasta gamma di nuovi metodi API progettati per semplificare il flusso di lavoro. In questo articolo, utilizzeremo uno di questi metodi per creare una macro che inserisce numeri di pagina personalizzati in tutto il documento a partire dalla seconda pagina.

How to insert custom page numbers from the second page using the new ONLYOFFICE API method

A proposito del metodo SetStartPageNumber 

Il metodo SetStartPageNumber fa parte della classe ApiSection. Questo nuovo metodo consente di definire il numero di pagina di partenza per una sezione specifica di un documento. Di seguito un esempio della sua implementazione:

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();

Più avanti in questo articolo, utilizzeremo questo metodo per impostare il numero di pagina di partenza dalla seconda pagina del documento.

Costruzione della macro

Recupero del documento e delle sezioni

La macro inizia accedendo al documento attivo utilizzando Api.GetDocument(). Recupera la prima sezione usando doc.GetSections()[0], che rappresenta la prima pagina:

let doc = Api.GetDocument();
let firstSection = doc.GetSections()[0];

Configurazione della prima pagina

// First Page Configuration
firstSection.SetTitlePage(true);
// Remove first page header/footer
firstSection.RemoveHeader("title");
firstSection.RemoveFooter("title");
  • SetTitlePage(true) segna la prima pagina come una pagina del titolo.
  • RemoveHeader(“title”)RemoveFooter(“title”) assicurano che non appaiano intestazioni o piè di pagina nella pagina del titolo.

Configurazione delle pagine successive

// Subsequent Pages Configuration
let finalSection = doc.GetFinalSection();
finalSection.SetStartPageNumber(0); // Sets start page number. Default is 0 => 1st numbered page is 1
  • La variabile finalSection rappresenta la sezione in cui verranno applicati intestazioni, piè di pagina e numerazione delle pagine.
  • SetStartPageNumber(0) garantisce che la numerazione inizi correttamente dalla seconda pagina, rendendo la prima pagina numerata “1”.

Configuazione dell’intestazione

// 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’intestazione per la sezione.
  • Il primo elemento dell’intestazione viene recuperato con GetElement(0).
  • AddPageNumber() inserisce un numero di pagina dinamico.
  • Il metodo SetJc() definisce l’allineamento del testo nell’intestazione, posizionandolo a sinistra, al centro o a destra.

Configurazione del piè di pagina

// 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 piè di pagina per la sezione.
  • Il primo elemento del piè di pagina viene recuperato con GetElement(0).
  • AddPageNumber() inserisce un numero di pagina dinamico nel piè di pagina.
  • Il metodo SetJc() controlla l’allineamento del testo nel piè di pagina, analogamente all’intestazione.

Nota! Per impostazione predefinita, la configurazione del piè di pagina è commentata. Puoi alternare l’inserimento della numerazione nell’intestazione, nel piè di pagina o in entrambi semplicemente commentando le sezioni corrispondenti o rimuovendo il commento.

L’intera macro è la seguente:

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

Ora eseguiamo la macro e vediamo come funziona!

Speriamo che questa macro diventi una preziosa aggiunta al tuo set di strumenti aiutandoti a semplificare il flusso di lavoro. In ONLYOFFICE, ci impegniamo a fornire ai nostri utenti funzionalità versatili e la flessibilità per adattarle alle loro esigenze specifiche.

Con il recente rilascio, abbiamo introdotto una vasta gamma di nuovi metodi nella nostra libreria API. Ti incoraggiamo a scoprire questi miglioramenti e a creare le tue macro. Se hai domande o suggerimenti, non esitare a contattarci. Ti auguriamo buona fortuna e buon lavoro!

Crea il tuo account ONLYOFFICE gratuito

Visualizza, modifica e collabora su documenti, fogli, diapositive, moduli e file PDF online.