[英]How to merge a series of two fields into a series of one field in Acrobat with javascript
我在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
我水平排列了数据( 像这样 )并将其保存为.txt文件。
我需要将这些名称转换为pdf ,因此我在Adobe Acrobat中创建了一个表单 ,其中包含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 Open上运行的javascript,并输入了以下代码:
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文件时,我得到了这个结果 。
我的主要问题是: 如何编写较短的代码? 我需要用几十个名称填充表单,并且我相信我不必为每个名称编写三行代码。
另一个问题是:当这些字段没有数据时,如何摆脱显示的孤独逗号 ?
干杯!
我找到了方法!
[编辑:也检查我的其他解决方案。 我相信这是一个更好的]
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对“ pdf中顺序字段的javascript ”的回答。 这个家伙的力量很强大;)
如果有人可以改善我的代码,请继续。 我将不胜感激。
例如: 有人知道如何摆脱那些令人讨厌的逗号吗? 。 我需要它们仅在具有数据的字段中显示。
干杯!
这是一个更好的解决方案 。
这可以防止逗号出现在空白字段中:
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;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.