玩转 ONLYOFFICE 版本 8.0:揭幕全新文档生成器 API 表单方法
在新发布的版本 8.0中,我们推出了一组全新文档生成器 API 方法。在这篇博文中,我们会深入探讨其中的两种方法,演示如何将它们整合到两个全新的 ONLYOFFICE 宏中,从而让表单模板的使用体验更为流畅。
关于新方法
- GetFormsData
GetFormsData 方法会检索一个数组,其中包含文档中所有表单元素的表单数据。
expression.GetFormsData();
其中 expression 是表示 ApiDocument 类的变量。
您可以使用这种方法,从文档的表单中检索目标数据,从而可以根据表单的类型和属性,对表单做动态修改。
- SetFormsData
与前面的方法相反,SetFormsData 不会返回数据。不过,它支持我们设置表单元素的值。
expression.SetFormsData();
其中,expression 是表示 ApiDocument 类的变量。
方法参数的传递格式为,指定表单键和值的 FormData 数组。此外,还可以指定表单类型。
您可以使用这一方法,轻松定义所有相关表单元素的默认值,实现动态文档编辑的自动化。
用于修改文本字段的宏:GetFormsData 实现
这个宏很是灵便,您可以通过它来修改文档中所有的文本字段。此外,您也可以对它进行自定义设置,对其他表单类型进行修改。
首先,我们定位活动文档:
const oDocument = Api.GetDocument();
然后,检索包含文档中所有表单元素的数组(aForms)。
const aForms = oDocument.GetAllForms();
之后,我们收集文档中所有表单的数据,将其存储到 formsData 变量中:
const formsData = oDocument.GetFormsData();
然后,我们添加一个循环,遍历数组中所有的表单元素:
for (let i = 0; i < aForms.length; i++) {
}
我们检查当前表单的类型是否为“文本”。如果是,就在随后的行中更改表单元素:
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.
}
这里,每一行都有注释,说明其执行的操作。
整个宏如下:
(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.
}
}
})();
用于设置默认表单值的宏: SetFormsData 实现
这是我们介绍的第二个宏,可以使用它轻轻松松,无缝调整目标表单的值。这个宏非常简单,只需几步即可完成。
首先,我们检索活动文档:
const oDocument = Api.GetDocument();
然后,我们使用 SetFormsData 方法,在方法参数中定义元素键和所需的默认值:
oDocument.SetFormsData([
{key: "CompanyName", value: "OnlyOffice"}
]);
整个宏如下:
The entire macro code is the following:
const oDocument = Api.GetDocument();
oDocument.SetFormsData([
{key: "CompanyName", value: "OnlyOffice"}
]);
我们希望以上展示的方法和宏对您而言有价值,可以简化文档工作流程。宏可以是功能强大的工具,我们的 API 库提供海量内容,为您将各种任务自动化提供无限可能。
欢迎深入研究我们的 API,对宏做个性化设置,利用文档处理的强大功能。如有创新的想法,欢迎随时与我们联系,与我们分享。我们欢迎开放讨论与合作。祝您探索之路好运!
创建免费的 ONLYOFFICE 账户
在线查看并协作编辑文本文档、电子表格、幻灯片、表单和 PDF 文件。