Padroneggiare ONLYOFFICE versione 8.0: svelati i nuovi metodi dell’API Document Builder

12 febbraio 2024By Alice

Con l’uscita della versione 8.0, è stata introdotta una serie di nuovi metodi dell’API Document Builder. In questo post approfondiremo due di questi metodi, spiegandone l’utilità e illustrando come incorporarli senza problemi in due nuove macro di ONLYOFFICE.

Mastering ONLYOFFICE version 8.0: Unveiling new Document Builder API form methods

I nuovi metodi

  • GetFormsData

Il metodo GetFormsData permette di recuperare un array che comprende i dati dei form per tutti gli elementi del modulo presenti nel documento.

expression.GetFormsData();

Dove expression è una variabile che rappresenta la classe ApiDocument.

Utilizzando questo metodo, è possibile recuperare dati mirati a partire dai moduli in un documento, consentendo di modificare in modo dinamico i moduli in base al loro tipo e proprietà.

  • SetFormsData

Contrariamente a quello precedente, il metodo SetFormsData non restituisce alcun dato, ma ci consente di impostare il valore degli elementi del modulo.

expression.SetFormsData();

Dove expression è una variabile che rappresenta la classe ApiDocument.

I parametri del metodo vengono passati nel formato dell’array FormData dove sono specificati la chiave e il valore del modulo. Inoltre, è possibile specificare il tipo di modulo.

Utilizzando questo metodo, è possibile definire facilmente i valori predefiniti per tutti gli elementi del modulo, automatizzando la modifica dinamica del documento.

Macro per modificare i campi di testo: implementazione di GetFormsData

Questa interessante macro consente di modificare tutti i campi di testo del documento. Inoltre può essere personalizzata per apportare modifiche ad altri tipi di moduli.

Per prima cosa individuiamo il documento attivo:

const oDocument = Api.GetDocument();

Poi recuperiamo un array (aForms) contenente tutti gli elementi dei moduli presenti nel documento.

const aForms = oDocument.GetAllForms();

Dopodiché raccogliamo i dati di tutti i moduli del documento e li salviamo nella variabile formsData:

const formsData = oDocument.GetFormsData();

Quindi aggiungiamo un ciclo che itera ogni elemento del modulo nell’array:

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

Controlliamo se il tipo del modulo corrente è “text”. Se corretto, nelle righe successive apportiamo delle modifiche agli elementi del modulo:

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.
}

Qui ogni riga è commentata con una descrizione dell’azione che esegue.

L’intero codice della macro è il seguente:

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

Macro per impostare i valori predefiniti dei moduli: implementazione di SetFormsData

Utilizzando questa seconda macro, è possibile regolare facilmente i valori dei moduli scelti. La macro è piuttosto semplice e può essere eseguita in pochi passaggi.

Per prima cosa recuperiamo il documento attivo:

const oDocument = Api.GetDocument();

Successivamente, utilizziamo il metodo SetFormsData in cui definiamo la chiave dell’elemento e il valore predefinito desiderato nei parametri del metodo:

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

L’intero codice della macro è il seguente:

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

Ci auguriamo che i metodi e le macro presentati siano utili per semplificare il flusso di lavoro dei documenti. Le macro sono strumenti potenti e la nostra ampia libreria di API offre una miriade di possibilità per automatizzare varie attività.

Esplora la nostra API per creare macro personalizzate che sfruttano le solide funzionalità dell’elaborazione dei documenti. Non esitare a contattarci, Non esitare a contattarci per condividere le tue idee innovative. Accogliamo sempre con favore le discussioni e le collaborazioni. Buona fortuna nella tua esplorazione!