Maîtrisez ONLYOFFICE version 8.0 : découvrez les nouvelles méthodes de l’API Document Builder

12 février 2024By Dasha

Avec le dévoilement de la version 8.0, un ensemble de nouvelles méthodes de l’API Document Builder a été introduit. Dans ce billet de blog, nous allons découvrir deux de ces méthodes, en démontrant leur utilité et en illustrant comment les incorporer de manière transparente dans deux nouvelles macros ONLYOFFICE.

Maîtrisez ONLYOFFICE version 8.0 : découvrez les nouvelles méthodes de l'API Document Builder

À propos des nouvelles méthodes

  • GetFormsData

La méthode GetFormsData permet de récupérer un tableau contenant les données de tous les éléments de formulaire figurant dans le document.

expression.GetFormsData();

expression est une variable qui représente la classe ApiDocument.

En utilisant cette méthode, vous pouvez récupérer des données ciblées à partir de formulaires dans un document, ce qui vous permet de modifier dynamiquement les formulaires en fonction de leurs types et de leurs propriétés.

  • SetFormsData

Contrairement à la méthode précédente, la méthode SetFormsData ne renvoie aucune donnée. Cependant, elle nous permet de définir la valeur des éléments du formulaire.

expression.SetFormsData();

expression est une variable qui représente la classe ApiDocument.

Les paramètres de la méthode sont transmis sous la forme d’un tableau FormData dans lequel la clé et la valeur du formulaire sont spécifiées. En outre, il est possible de spécifier le type de formulaire.

En employant cette méthode, vous pouvez facilement définir des valeurs par défaut pour tous les éléments de formulaire pertinents, ce qui automatise l’édition dynamique du document.

Macro permettant de modifier les champs de texte : Mise en œuvre de GetFormsData

Cette macro astucieuse permet de modifier tous les champs de texte du document. Elle peut également être personnalisée pour apporter des modifications à d’autres types de formulaires.

Nous ciblons d’abord le document actif :

const oDocument = Api.GetDocument();

Ensuite, nous récupérons un tableau (aForms) contenant tous les éléments de formulaire présents dans le document.

const aForms = oDocument.GetAllForms();

Après cela, nous collectons des données sur tous les formulaires du document et les stockons dans la variable formsData :

const formsData = oDocument.GetFormsData();

Nous ajoutons ensuite une boucle qui parcourt chaque élément du tableau :

for (let i = 0; i < aForms.length; i++) {
}

Nous vérifions si le type du formulaire actuel est “texte”. Si c’est le cas, nous modifions les éléments du formulaire dans les lignes suivantes :

if (formsData[i]["type"] == "text") {
  //aForms[i].SetBackgroundColor(205, 0, 0); // <---- Sets/Changes the Background Color of all the form elements.
  //aForms[i].SetBorderColor(205, 0, 0);       //<---- Unccomment if you want to set/change the border color for all the form elements.
  //aForms[i].SetPlaceholderText("Placeholder Text");       //<---- Unccomment if you want to set/change the Placeholder Text for all the form elements.
  //aForms[i].SetRequired(true);          //<---- Unccomment if you want to set/change the 'required' property for all the form elements.
  //aForms[i].SetTipText("Tip Text");       //<---- Unccomment if you want to set/change the Tip Text for all the form elements.
}

Ici, chaque ligne est commentée avec une description de l’action qu’elle effectue.

Le code macro complet est le suivant :

(function() {
  const oDocument = Api.GetDocument();
  const aForms = oDocument.GetAllForms();
  const formsData = oDocument.GetFormsData();

  for (let i = 0; i < aForms.length; i++) {
    if (formsData[i]["type"] == "text") {
      // Uncomment the following lines based on your preferences:
      // aForms[i].SetBackgroundColor(205, 0, 0); // Sets/Changes the Background Color of all the form elements.
      // aForms[i].SetBorderColor(205, 0, 0);     // Uncomment if you want to set/change the border color for all the form elements.
      // aForms[i].SetPlaceholderText("Placeholder Text"); // Uncomment if you want to set/change the Placeholder Text for all the form elements.
      // aForms[i].SetRequired(true);        // Uncomment if you want to set/change the 'required' property for all the form elements.
      // aForms[i].SetTipText("Tip Text");   // Uncomment if you want to set/change the Tip Text for all the form elements.
    }
  }
})();

Maintenant, exécutons notre macro et voyons comment elle fonctionne !

Macro permettant de définir les valeurs par défaut des formulaires : mise en œuvre de SetFormsData

En utilisant la deuxième macro, nous pouvons facilement et de manière transparente ajuster les valeurs des formulaires ciblés. La macro est assez simple et peut être réalisée en quelques étapes seulement.

Tout d’abord, nous récupérons le document actif :

const oDocument = Api.GetDocument();

Ensuite, nous utilisons la méthode SetFormsData, dans laquelle nous définissons la clé de l’élément et la valeur par défaut souhaitée dans les paramètres de la méthode :

oDocument.SetFormsData([
  {key: "CompanyName", value: "OnlyOffice"}
]);

Le code macro complet est le suivant :

The entire macro code is the following:
const oDocument = Api.GetDocument();
oDocument.SetFormsData([
  {key: "CompanyName", value: "OnlyOffice"}
]);

Exécutons maintenant notre macro et voyons comment elle fonctionne !

Nous espérons que les méthodes et macros présentées vous seront utiles pour rationaliser le flux de travail des documents. Les macros sont des outils puissants et notre vaste bibliothèque d’API offre une myriade de possibilités pour automatiser diverses tâches.

N’hésitez pas à vous plonger dans notre API pour créer des macros personnalisées qui exploitent les fonctionnalités robustes du traitement des documents. N’hésitez pas à nous contacter pour nous faire part de vos idées novatrices. Nous sommes ouverts à la discussion et à la collaboration. Nous vous souhaitons bonne chance dans vos projets exploratoires !