Acrobat动态图章弹出窗口以反映图章注释

时间:2018-11-02 22:45:21

标签: javascript popupwindow acrobat content-script

我正在创建一个带有acrobat动态图章弹出窗口的应用程序,我希望它能反映图章注释。我的动态图章具有一些JavaScript,它将生成一个弹出窗口。弹出窗口文本字段上的信息将成为图章的一部分。我正在尝试在两个区域中添加弹出窗口的内容。

  1. 关于动态图章(完成)
  2. 关于图章注释(需要帮助)

下面,我添加了当前拥有的JavaScript。如果这里有人可以帮助我找到解决方案,我将不胜感激。

enter image description here

var builder = 

{
        // These map to Text Fields in the Stamp
    textBoxes :
    [
        { field:"IsoNum", description:"Isometric Number:", default:function() { return Collab.user; } }     

    ]
}


/*********** belongs to: AcroForm:Calculation:Calculate ***********/

// SEE GLOBAL JAVASCRIPT SECTION FOR CUSTOMIZATION

if (event.source.forReal)
{
    var stampDialog = CreateDialog(builder);
    app.execDialog(stampDialog);    


    for (var i = 0; i < builder.textBoxes.length; ++i)
    {
        var t = builder.textBoxes[i];
        this.getField(t.field).value = stampDialog.textBoxResults[i];
    }
}

function CreateDialog(dialogBuilder)
{
    var sd = new Object();
    sd.builder = dialogBuilder;
    sd.textBoxResults = new Array();

    var optionsElements = new Array();  
    for (var i = 0; i < dialogBuilder.textBoxes.length; ++i)
    {
        var view = new Object();        
        view.type = "view";
        view.align_children = "align_row";
        view.elements = new Array();

        var t = dialogBuilder.textBoxes[i];

        var s = new Object();
        s.type = "static_text";
        s.item_id = "sta" + i;
        s.name = t.description;
        s.width = 110;

        var e = new Object();
        e.type = "edit_text";
        e.item_id = "edt" + i;
        e.width = 150;

        view.elements[0] = s;
        view.elements[1] = e;       

        optionsElements[i] = view;
    }

    var optionsCluster = 
    {
        type: "cluster",
        name: "Options",
        elements: optionsElements
    };

    sd.initialize = function(dialog)
    {
        var init = new Object();
        for (var i = 0; i < this.builder.textBoxes.length; ++i)
        {
            var t = this.builder.textBoxes[i];
            var id = "edt" + i;         
            init[id] = t.default();
        }

        dialog.load(init);
    };

    sd.commit = function(dialog)
    {
        var res = dialog.store();               

        for (var i = 0; i < this.builder.textBoxes.length; ++i)
        {
            var t = this.builder.textBoxes[i];
            var id = "edt" + i;
            this.textBoxResults[i] = res[id];           
        }
    };

    sd.description = 
    {
        name: "Stamp Dialog",
        elements:
        [
            {
                type: "view",
                align_children: "align_fill",
                elements:
                [
                    optionsCluster
                ]
            },
            {
                type: "ok"
            }
        ]
    };

    return sd;
}

1 个答案:

答案 0 :(得分:0)

我没有任何特定的代码,但是您似乎对Acrobat JavaScript的理解足以理解我的说明。

对话框代码在您选择和放置图章的时间到实际创建图章之间运行。因此,您不能在代码中直接设置注释的内容,因为在提交功能完成之前,图章注释才真正存在。您要做的是创建一个函数,该函数将timeout内的便笺内容设置为时间,并使用大约半秒钟的延迟。