Here\'s the situation. I have a PDF with automatically generated pdf form field names. The problem is that these names are not very user friendly. They look something like :
Although you can't rename fields using javascript you can add new fields and delete existing fields. You can also cut and paste between documents. So...
One. Develop renaming script, e.g.:
var doc = app.activeDocs[0];
var fnames = new Array();
for ( var i = 0; i < doc.numFields - 1; i++) {
fnames[i] = doc.getNthFieldName(i);
}
for (var i = 0; i < doc.numFields - 1; i++){
var f = doc.getField(fnames[i] + ".0");
var nfn = fnames[i].replace("1","2");
var rb = doc.addField(nfn,"radiobutton",0,f.rect)
for ( var j = 1; j < 9; j++){//Add the other 8
f = doc.getField(fnames[i] + "." + j);
doc.addField(nfn,"radiobutton",0,f.rect)
}
rb.setExportValues([1,2,3,4,5,6,7,8,9]);
rb.borderStyle = f.borderStyle;
rb.strokeColor = f.strokeColor;
rb.fillColor = f.fillColor;
doc.removeField(fnames[i]);
console.println(fnames[i] + " to " + nfn);
}
Notes:
Renaming fields may change order of fields for getNthFieldName, so get these first.
A group of radiobuttons is one field (getField("Groupname")), to get the n'th in the same group use getField("Groupname.n"), you need these for the position rectangle. Properties which apply to all can be set enmase.
addField parameters are: field name, field type, page, position rectangle)
In the example there are 9 radiobuttons in each group
Two. Cut and paste the fields you want to rename to a blank pdf (I've assumed one page above). Run the script. Cut and paste back.
You may need to change app.activeDocs[0] to app.activeDocs[1] or replace "doc" with "this" if keeping both documents open when running the script