如何使用javascript将Acrobat中的两个字段合并为一个字段

时间:2018-07-17 21:56:55

标签: javascript pdf acrobat

我将这些数据保存在 Excel 文件中:

First Name_1    Amy
First Name_2    Bobby
First Name_3    Courteney
First Name_4    
First Name_5    
Last Name_1     Adams
Last Name_2     Brown
Last Name_3     Cox
Last Name_4 
Last Name_5 

我水平排列了数据(like this)并将其保存为 .txt 文件。

我需要将这些名称保存为 pdf ,因此我在 Adob​​e Acrobat 中创建了a form,其中包含15个这样的字段:

First Name_1
Last Name_1
Full Name_1

First Name_2
Last Name_2
Full Name_2

First Name_3
Last Name_3
Full Name_3

First Name_4
Last Name_4
Full Name_4

First Name_5
Last Name_5
Full Name_5

我需要将每个人的名字和姓氏合并到各自的全名字段中。

这就是我的操作方式:我右键单击页面的缩略图并选择 Page Properties,然后单击“操作”标签。然后,我创建了一个javascript that would run on Page Open,并输入了以下代码:

var firstName1 = this.getField("First Name_1").valueAsString;
var lastName1 = this.getField("Last Name_1").valueAsString;
this.getField("Full Name_1").value = lastName1 + ", " + firstName1;

var firstName2 = this.getField("First Name_2").valueAsString;
var lastName2 = this.getField("Last Name_2").valueAsString;
this.getField("Full Name_2").value = lastName2 + ", " + firstName2;

var firstName3 = this.getField("First Name_3").valueAsString;
var lastName3 = this.getField("Last Name_3").valueAsString;
this.getField("Full Name_3").value = lastName3 + ", " + firstName3;

var firstName4 = this.getField("First Name_4").valueAsString;
var lastName4 = this.getField("Last Name_4").valueAsString;
this.getField("Full Name_4").value = lastName4 + ", " + firstName4;

var firstName5 = this.getField("First Name_5").valueAsString;
var lastName5 = this.getField("Last Name_5").valueAsString;
this.getField("Full Name_5").value = lastName5 + ", " + firstName5;

导入 .txt 文件时,我得到this result

我的主要问题是:如何编写较短的代码?我需要在表单中填充数十个名称,而且我相信我不必为每个名称编写三行代码名称。

另一个问题是:当这些字段没有数据时,如何摆脱显示的孤独逗号

干杯!

2 个答案:

答案 0 :(得分:0)

我找到了方法!

[编辑:也检查我的其他解决方案。我相信这是一个更好的选择]

for ( var i = 1; i < 26; i++)
{
    this.getField ("Full Name_" + i).value = this.getField("Last Name_" + i).valueAsString
    + ", "
    + this.getField("First Name_" + i).valueAsString;
}

我刚刚调整了BarlaeDC对“ javascript for sequential fields within a pdf”的回答。这个家伙的力量很强大;)

如果有人可以改善我的代码,请继续。我将不胜感激。

例如:有人知道如何摆脱那些令人讨厌的逗号吗?。我只需要它们显示在具有数据的字段中。

干杯!

答案 1 :(得分:0)

这是一个更好的解决方案

这可以防止逗号出现在空白字段中:

for ( var i = 1; i < 26; i++) //Up to 25 series will be affected
{
//If the Full Name field is not empty...
if (this.getField("Full Name_" + i).value.length!=0) {
//...leave it as it is.
    this.getField("Full Name_" + i).value = this.getField("Full Name_" + i).valueAsString
//If the First Name field is empty...
} else if (this.getField("First Name_" + i).value.length==0) {
//...duplicate the "Last Name" field on the "Full Name" one.
    this.getField("Full Name_" + i).value = this.getField("Last Name_" + i).valueAsString
//Else...
} else {
//...merge "Last Name, First Name" into the "Full Name" field.
    this.getField("Full Name_" + i).value = this.getField("Last Name_" + i).valueAsString
    + ", "
    + this.getField("First Name_" + i).valueAsString;
}
}