半岛权威十大直营(官方)网站

文档在线协同工具ONLYOFFICE教程:如何使用宏对 PDF 表单中的特定字段执行计算

翻译|使用教程|编辑:吉炜炜|2025-03-13 11:34:19.437|阅读 2 次

概述:ONLYOFFICE 宏功能强大且用途广泛,不仅可用于自动执行文档、电子表格和演示文稿中的任务,还可用于 PDF 表单中的任务。在这篇博文中,我们将向您展示如何创建和运行一个独特的宏,该宏对表单中的特定字段执行计算。

# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>

ONLYOFFICE Docs,作为一款功能强大的在线编辑器,适用于您使用的平台的文本文档、电子表格、演示文稿、表单和 PDF 阅读器。此次 ONLYOFFICE发布全新版本8.3,整个套件具有多项增强功能↓↓↓

ONLYOFFICE Docs 最新下载

ONLYOFFICE 宏功能强大且用途广泛,不仅可用于自动执行文档、电子表格和演示文稿中的任务,还可用于 PDF 表单中的任务。在这篇博文中,我们将向您展示如何创建和运行一个独特的宏,该宏对表单中的特定字段执行计算。在此示例中,宏有助于计算税款,使流程更快、更准确。

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

构建宏

从文档中检索所有表格

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


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

定义表单

然后,我们定义表单键:

  // Formkeys of input forms
    var formkey1 = "Form1";
    var formkey2 = "Form2";
    var taxFormkey = "TaxForm";

    // Formkeys of result forms
    var sumResultKey = "SumResult";
    var taxResultKey = "TaxResult";
  • formkey1 formkey2taxFormkey存储输入字段的标识符。
  • sumResultKeytaxResultKey存储将插入结果的输出字段的标识符。

检索表单 

getFormValue函数遍历表单以查找与 formKey 匹配的表单 

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

如果转换失败,则默认为0,以防止计算错误。

表单插入 

setFormValue函数搜索与formKey匹配的表单字段SetText() 方法使用格式化的数值(2 位小数)更新该字段。

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

主要计算

在主计算函数中我们:

  • 从表单字段检索用户输入的值。
  • 计算输入1 输入2的总和
  • 按总额的百分比计算税额。
  • 调用setFormValue()将结果插入到各自的字段中。
 // Main calculation function
    function calculateAndInsert() {
        let input1 = getFormValue(formkey1);
        let input2 = getFormValue(formkey2);
        let taxInput = getFormValue(taxFormkey);
        // Perform calculations
        var sum = parseFloat(input1) + parseFloat(input2);
        var tax = sum * taxInput / 100; // % tax

        // Insert results
        setFormValue(sumResultKey, sum);
        setFormValue(taxResultKey, tax);
    }

如下:

(function () {
    // Get all forms from the document
    const document = Api.GetDocument();
    let forms = document.GetAllForms();
    // Formkeys of input forms
    var formkey1 = "Form1";
    var formkey2 = "Form2";
    var taxFormkey = "TaxForm";

    // Formkeys of result forms
    var sumResultKey = "SumResult";
    var taxResultKey = "TaxResult";

    // Function to get the value of a form by its key
    function getFormValue(formKey) {
        for (let form of forms) {
            if (form.GetFormKey() === formKey) {
                return parseFloat(form.GetText()) || 0;
            }
        }
    }

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

    // Main calculation function
    function calculateAndInsert() {
        let input1 = getFormValue(formkey1);
        let input2 = getFormValue(formkey2);
        let taxInput = getFormValue(taxFormkey);
        // Perform calculations
        var sum = parseFloat(input1) + parseFloat(input2);
        var tax = sum * taxInput / 100; // % tax

        // Insert results
        setFormValue(sumResultKey, sum);
        setFormValue(taxResultKey, tax);
    }

    // Call the calculation function
    calculateAndInsert();
})();

现在,让我们运行宏并看看它是如何工作的!

ONLYOFFICE致力于为用户提供满足其需求的多功能工具。宏是工具包的强大补充,希望这个宏能成为您的宝贵资产。

————————————————————————————————————————

关于慧都科技:

慧都科技是专注软件工程、智能制造、石油工程三大行业的数字化解决方案服务商。在软件工程领域,我们提供开发控件、研发管理、代码开发、部署运维等软件开发全链路所需的产品,提供正版授权采购、技术选型、个性化维保等服务,帮助客户实现技术合规、降本增效与风险可控。慧都科技ONLYOFFICE在中国的官方授权代理商,提供ONLYOFFICE系列产品免费试用,咨询,正版销售等于一体的专业化服务。ONLYOFFICE是文档在线编辑领域的优秀产品,帮助企业实现高效的文档协同处理。

下载|体验更多ONLYOFFICE产品咨询,或拨打产品热线:023-68661681


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@wqylolg.cn

文章转载自:慧都网

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP