欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 艺术 > 如何使用 ONLYOFFICE 宏对 PDF 表单中的特定字段执行计算

如何使用 ONLYOFFICE 宏对 PDF 表单中的特定字段执行计算

2025/3/15 1:02:42 来源:https://blog.csdn.net/m0_68274698/article/details/146223546  浏览:    关键词:如何使用 ONLYOFFICE 宏对 PDF 表单中的特定字段执行计算

ONLYOFFICE 宏功能强大且用途广泛,不仅可用于自动执行文本文档、电子表格和演示文稿中的任务,还能应用于 PDF 表单。在本文中,我们将介绍如何创建并运行一个宏,用于对表单中的特定字段进行计算,以快速准确地处理税款计算。

How to perform calculations on specific fields in a PDF form using an ONLYOFFICE macro

关于 ONLYOFFICE 

ONLYOFFICE 是一个国际开源项目,专注于高级和安全的文档处理,可提供文本文档、电子表格、幻灯片、表单和 PDF 编辑器。ONLYOFFICE 文档高度兼容微软 Office 格式,并提供数百种格式化和样式工具,帮助您实现复杂的编辑功能。

ONLYOFFICE 不仅适合个人用户,更为企业和商业开发提供了强大的支持。如果您需要为您的企业集成强大的编辑功能,或是为您的应用程序、网站或其他解决方案提供强大的编辑功能,您可以选择企业版 / 开发者版。观看下方视频,了解关于我们的更多信息:

ONLYOFFICE,兼顾协作与安全的开源办公套件

什么是 ONLYOFFICE 宏

如果您是一名资深 Microsoft Excel 用户,那么相信您已对于 VBA 宏非常熟悉了。这些宏是帮助您自动执行日常任务的小型脚本。无论是重构数据,还是在单元格区域中插入多个值。ONLYOFFICE 宏的基础是 JavaScript 语法文档生成器 API 方法。基于 JavaSript 的宏易于使用,具有跨平台特性且十分安全。这就使得其与 VBA 相比有着显著的优势。

下面一起来看看如何创建宏,帮助您对表单中的特定字段进行计算。

构建宏

从文档中检索所有表单

首先,我们从文档中检索所有字段:

// Get all forms from the documentconst document = Api.GetDocument();let forms = document.GetAllForms();
  • Api.GetDocument() 获取当前活动文档。
  • GetAllForms() 检索文档内的所有表单字段。

定义表单键

然后,我们定义表单键:

// Formkeys of input formsvar formkey1 = "Form1";var formkey2 = "Form2";var taxFormkey = "TaxForm";// Formkeys of result formsvar sumResultKey = "SumResult";var taxResultKey = "TaxResult";
  • formkey1formkey2 和 taxFormkey 用于存储输入字段的标识符。
  • sumResultKey 和 taxResultKey 用于存储输出结果的字段标识符。

检索表单值

getFormValue 函数会遍历表单,查找与 formKey 匹配的表单:

// Function to get the value of a form by its keyfunction getFormValue(formKey) {for (let form of forms) {if (form.GetFormKey() === formKey) {return parseFloat(form.GetText()) || 0;}}}
  • GetText() 检索表单的文本值。
  • parseFloat() 将文本值转换为数字。

若转换失败,则默认赋值为 0,以避免计算错误。

将值插入表单

setFormValue 函数搜索与 formKey 相匹配的表单字段,并使用 SetText() 方法将该字段更新为格式化后的数值(保留小数点后两位)。

// Function to set the value of a result formfunction setFormValue(formKey, value) {for (let form of forms) {if (form.GetFormKey() === formKey) {form.SetText(value.toFixed(2));}}}

主要计算

在主要计算函数中,我们执行以下步骤:

  • 从表单字段中获取用户输入值。
  • 计算 input1 和 input2 的总和。
  • 计算总和的百分比以得出税额。
  • 调用 setFormValue() 方法,将计算得到的结果填入对应的表单字段中。
// Main calculation functionfunction calculateAndInsert() {let input1 = getFormValue(formkey1);let input2 = getFormValue(formkey2);let taxInput = getFormValue(taxFormkey);// Perform calculationsvar sum = parseFloat(input1) + parseFloat(input2);var tax = sum * taxInput / 100; // % tax// Insert resultssetFormValue(sumResultKey, sum);setFormValue(taxResultKey, tax);}

完整宏代码如下:

(function () {// Get all forms from the documentconst document = Api.GetDocument();let forms = document.GetAllForms();// Formkeys of input formsvar formkey1 = "Form1";var formkey2 = "Form2";var taxFormkey = "TaxForm";// Formkeys of result formsvar sumResultKey = "SumResult";var taxResultKey = "TaxResult";// Function to get the value of a form by its keyfunction getFormValue(formKey) {for (let form of forms) {if (form.GetFormKey() === formKey) {return parseFloat(form.GetText()) || 0;}}}// Function to set the value of a result formfunction setFormValue(formKey, value) {for (let form of forms) {if (form.GetFormKey() === formKey) {form.SetText(value.toFixed(2));}}}// Main calculation functionfunction calculateAndInsert() {let input1 = getFormValue(formkey1);let input2 = getFormValue(formkey2);let taxInput = getFormValue(taxFormkey);// Perform calculationsvar sum = parseFloat(input1) + parseFloat(input2);var tax = sum * taxInput / 100; // % tax// Insert resultssetFormValue(sumResultKey, sum);setFormValue(taxResultKey, tax);}// Call the calculation functioncalculateAndInsert();
})();

ONLYOFFICE 致力于为用户提供多功能工具,满足各种需求,其中宏功能尤为强大。

我们诚邀您探索我们的 API 方法库,发挥创意,开发独一无二的宏。如果您有任何宏作品或创新想法,欢迎随时与我们分享,您的建议和合作对我们非常重要。

相关链接

免费桌面办公套件

更多 ONLYOFFICE 宏

如何使用 ONLYOFFICE 宏将 TextForms 添加到表单模板

GitHub 上的 ONLYOFFICE

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词