Comment insérer des numéros de page personnalisés à partir de la deuxième page en utilisant la nouvelle méthode de l’API ONLYOFFICE
Les macros ONLYOFFICE sont des outils puissants qui permettent aux utilisateurs d’étendre les fonctionnalités des éditeurs et de les personnaliser pour répondre à des besoins spécifiques. Chez ONLYOFFICE, nous nous engageons à améliorer continuellement nos produits avec de nouvelles fonctionnalités. Avec la sortie de la version 8.3, nous avons introduit un large éventail de nouvelles méthodes API conçues pour rationaliser votre flux de travail. Dans cet article, nous allons utiliser l’une de ces méthodes pour créer une macro qui insère des numéros de page personnalisés dans l’ensemble du document, à partir de la deuxième page.
À propos de la méthode SetStartPageNumber
La méthode SetStartPageNumber fait partie de la classe ApiSection. Cette nouvelle méthode permet de définir le numéro de page de départ pour une section spécifique d’un document. Vous trouverez ci-dessous un exemple de sa mise en œuvre :
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();
Plus loin dans ce billet de blog, nous utiliserons cette méthode pour définir le numéro de page de départ de la deuxième page du document.
Construction de la macro
Récupération du document et des sections
La macro commence par accéder au document actif en utilisant Api.GetDocument().
Elle récupère la première section en utilisant doc.GetSections()[0], qui représente la première page :
let doc = Api.GetDocument();
let firstSection = doc.GetSections()[0];
Configuration de la première page
// First Page Configuration
firstSection.SetTitlePage(true);
// Remove first page header/footer
firstSection.RemoveHeader("title");
firstSection.RemoveFooter("title");
- SetTitlePage(true) marque la première page comme page de titre.
- RemoveHeader(« titre ») et RemoveFooter(« titre ») garantissent qu’aucun en-tête ou pied de page n’apparaît sur la page de titre.
Configuration des pages suivantes
// 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 représente la section dans laquelle les en-têtes, les pieds de page et la numérotation des pages seront appliqués.
- SetStartPageNumber(0) garantit que la numérotation commence correctement à partir de la deuxième page, ce qui fait de la première page numérotée la page « 1 ».
Configuration de l’en-tête
// 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) récupère un en-tête pour la section.
- Le premier élément de l’en-tête est accessible à l’aide de GetElement(0).
- AddPageNumber() insère un numéro de page dynamique.
- La méthode SetJc() définit l’alignement du texte de l’en-tête, en le positionnant à gauche, au centre ou à droite.
Configuration du pied de page
// 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) récupère un pied de page pour la section.
- Le premier élément du pied de page est accessible à l’aide de GetElement(0).
- AddPageNumber() insère un numéro de page dynamique dans le pied de page.
- La méthode SetJc() contrôle l’alignement du texte du pied de page, comme pour l’en-tête.
Remarque ! Par défaut, la configuration du pied de page est commentée. Vous pouvez choisir d’insérer la numérotation dans l’en-tête, dans le pied de page ou dans les deux en commentant ou en décommentant simplement les sections concernées.
La macro complète est la suivante :
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
Exécutons notre macro et voyons comment elle fonctionne !
Nous espérons que cette macro sera un ajout précieux à votre boîte à outils, vous aidant à rationaliser votre flux de travail. Chez ONLYOFFICE, nous nous engageons à fournir à nos utilisateurs des fonctionnalités polyvalentes et la flexibilité nécessaire pour les adapter à leurs besoins spécifiques.
Avec la dernière version, nous avons introduit un grand nombre de nouvelles méthodes dans notre bibliothèque API. Nous vous encourageons à explorer ces améliorations et à créer vos propres macros. Si vous avez des questions ou des suggestions, n’hésitez pas à nous contacter. Nous vous souhaitons bonne chance dans vos explorations !
Créez votre compte ONLYOFFICE gratuit
Affichez, modifiez et coéditez des documents texte, feuilles de calcul, diapositives, formulaires et fichiers PDF en ligne.