我将这些数据保存在 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 ,因此我在 Adobe 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。
我的主要问题是:如何编写较短的代码?我需要在表单中填充数十个名称,而且我相信我不必为每个名称编写三行代码名称。
另一个问题是:当这些字段没有数据时,如何摆脱显示的孤独逗号?
干杯!
答案 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;
}
}