Bluebeam基于下拉列表自动填充表单字段

时间:2017-05-26 14:26:57

标签: javascript forms pdf drop-down-menu autofill

我是Bluebeam的新手,我的任务是创建一个表单,根据下拉选项自动填充文本字段。下拉列表是联系人,自动填充区域是标题,电子邮件和电话。我发现了一些看起来可能有效的Javascript(How to make a Drop-down form in a PDF auto-populate a text box [Bluebeam]),但我不知道如何在Bluebeam中实际设置它。

我将下拉列表输入到我的表单中,并且我为自动填充区域创建了表单文本框。但是我把它放在哪里,如果这是我将使用的代码:

ar contarr = new Array() ;
contarr[0] = ["Contact", "Title", "Email", "Telephone"] ;
contarr[1] = ["Miguel", "Facilities Manager", "Miguel@gmail.com", "+1 555.555.9285 | Cell"]
contarr[2] = ["Jerry", "Facilities Manager", "Jerry@gmail.com", "+1 555.555.8642 | Cell"]
contarr[3] = ["Andrew", "Engineer", "Andrew@gmail.com", "+1 555.555.0985 | Cell"]
contarr[4] = ["Tom", "Director", "Tom@gmail.com", "+1 555.555.5987 | Cell"]
contarr[5] = ["Richard", "Supervisor", "Richard@gmail.com", "+1 555.555.7193 | Cell"]

我找到了答案的这一部分:

“在您的Dropdown中,您添加联系人姓名,并作为返回值,在contarr数组中添加其条目的索引号。假设我们将下拉列表称为”联系人“。”

我不知道该怎么做。我已经添加了联系人姓名,但我在哪里放了“返回值”和“索引号”?我不知道什么是“控制阵列”。

它还在一份独立文件中说:

var sele = this.getField("Contact").value ;
this.getField("Title").value = contarr[sele][1] ;
this.getField("Email").value = contarr[sele][2] ;
this.getField("Telephone").value = contarr[sele][3]

一个独立的字段只是一个普通的文本框,我隐藏在我的pdf上的某个地方,还是我们像excel工作表那样说话?

我在网上搜索过,找不到一步一步的说明。非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

这是一个片段,可以是文档级脚本,以实现您想要的。该代码假设您有4个表单字段,一个名为"下拉列表"然后是3个文本框,它们是"标题","电子邮件"和"电话"。

代码使用contarr中的名称填充组合框,然后添加代码以响应活动项目更改以更新文本框。

var contarr = new Array() ;
contarr[0] = ["Contact", "Title", "Email", "Telephone"] ;
contarr[1] = ["Miguel", "Facilities Manager", "Miguel@gmail.com", "+1 555.555.9285 | Cell"]
contarr[2] = ["Jerry", "Facilities Manager", "Jerry@gmail.com", "+1 555.555.8642 | Cell"]
contarr[3] = ["Andrew", "Engineer", "Andrew@gmail.com", "+1 555.555.0985 | Cell"]
contarr[4] = ["Tom", "Director", "Tom@gmail.com", "+1 555.555.5987 | Cell"]
contarr[5] = ["Richard", "Supervisor", "Richard@gmail.com", "+1 555.555.7193 | Cell"]

var names = [];
for (var i = 0; i < contarr.length; i++) {
    names.push(contarr[i][0]);
}

this.getField("Contacts").setItems(names);
this.getField("Contacts").setAction("Keystroke", "onContactSwitch(event.value);");

selectContact(0);   // Choose initial contact

function onContactSwitch(name) {
    for (var i = 0; i < contarr.length; i++) {
        if (contarr[i][0] == name) {
            selectContact(i);
            break;
        }
    }
}

function selectContact(i) {
    this.getField("Title").value = contarr[i][1];
    this.getField("Email").value = contarr[i][2];
    this.getField("Telephone").value = contarr[i][3];
}