Dominando o ONLYOFFICE versão 8.0: revelando novos métodos de formulário da API Document Builder

12 fevereiro 2024By Klaibson

Com a revelação de versão 8.0, um conjunto de novos métodos da API DocumentBuilder foi introduzido. Nesta postagem do blog, vamos nos aprofundar em dois desses métodos e demonstrar como incorporá-los em duas novas macros do ONLYOFFICE, simplificando a experiência de trabalhar com modelos de formulário.

Dominando o ONLYOFFICE versão 8.0: revelando novos métodos de formulário da API DocumentBuilder

Sobre novos métodos

  • GetFormsData

A GetFormsData método recupera um array englobando form data para todos os elementos de formulário apresentados no documento.

expression.GetFormsData();

Onde expression é uma variável que representa a classe ApiDocument .

Ao utilizar esse método, você pode recuperar dados direcionados de formulários em um documento, permitindo que você modifique dinamicamente os formulários com base em seus tipos e propriedades.

  • SetFormsData

Ao contrário do método anterior, o SetFormsData não retorna nenhum dado. No entanto, nos permite definir o valor dos elementos do formulário.

expression.SetFormsData();

Onde expression é uma variável que representa a classe ApiDocument .

Os parâmetros do método são passados no formato do FormData array onde a chave e o valor do formulário são especificados. Além disso, há uma opção para especificar o tipo de formulário.

Ao empregar esse método, você pode definir facilmente valores padrão para todos os elementos relevantes do formulário, automatizando a edição dinâmica do documento.

Macro para modificar campos de texto: implementação Getformdata

Essa macro bacana fornece a capacidade de modificar todos os campos de texto no documento. Também pode ser personalizado para fazer alterações em outros tipos de formulário.

Primeiro temos como alvo o documento ativo:

const oDocument = Api.GetDocument();

Em seguida, recuperamos um array(aForms) contendo todos os elementos do formulário presentes no documento.

const aForms = oDocument.GetAllForms();

Depois disso, coletamos dados sobre todos os formulários no documento e os armazenamos na variável formsData:

const formsData = oDocument.GetFormsData();

Em seguida, adicionamos um loop que itera por cada elemento de formulário na array:

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

Verificamos se o tipo do formulário atual é “text.”Se true, nas linhas subsequentes fazemos alterações nos elementos do formulário:

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

Aqui, cada linha é comentada com uma descrição da ação que realiza.

Todo o código da macro é o seguinte:

(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 para definir valores de formulário padrão: implementação SetFormsData

Usando a segunda macro, podemos ajustar de forma fácil e perfeita os valores dos formulários direcionados. A macro é bastante simples e pode ser feita em apenas alguns passos.

Primeiro recuperamos o documento ativo:

const oDocument = Api.GetDocument();

Em seguida, empregamos o método SetFormsData, onde definimos a chave do elemento e o valor padrão desejado dentro dos parâmetros do método:

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

Todo o código da macro é o seguinte:

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

Esperamos que os métodos e macros apresentados sejam valiosos para você, simplificando o fluxo de trabalho do documento. As Macros servem como ferramentas poderosas e nossa extensa biblioteca de API oferece uma infinidade de possibilidades para automatizar várias tarefas.

Sinta-se à vontade para se aprofundar em nossa API, criando macros personalizadas que aproveitam os recursos robustos do processamento de documentos. Não hesite em falar conosco, compartilhando suas ideias inovadoras. Congratulamo-nos com discussões abertas e colaboração. Boa sorte em seus empreendimentos exploratórios!