I have a working custom dynamic stamp with multiple input fields that the user is prompted. What I want to try to do now is somehow get a form text field onto the stamp AFTER it is actually rendered. For instance, if someone initially stamps in everything except for the ledger codes (because they don't know them at the time) and then sends the PDF off to someone who DOES know the ledger codes, I want to have the ability for those ledger codes to be added in like they were editable form fields and not have to use an additional stamp.
So really, after the stamp is "stamped" I don't really want it to be a stamp anymore... I want it to now be a form (I think...)
Here is the working code for the stamp (minus the "approve" field)
var dialog = {
VendorNum: "",
Date: "",
ProjNumRow1: "",
ProjNumRow2: "",
ProjNumRow3: "",
ProjNumRow4: "",
GLCodeRow1: "",
GLCodeRow2: "",
GLCodeRow3: "",
GLCodeRow4: "",
AmountRow1: "",
AmountRow2: "",
AmountRow3: "",
AmountRow4: "",
Approval: "",
commit:function (dialog) { // called when OK pressed
var results = dialog.store();
this.VendorNum = results["txt1"];
this.Date = results["txt2"];
this.ProjNumRow1 = results["txt3"];
this.ProjNumRow2 = results["txt4"];
this.ProjNumRow3 = results["txt5"];
this.ProjNumRow4 = results["txt6"];
this.GLCodeRow1 = results["txt7"];
this.GLCodeRow2 = results["txt8"];
this.GLCodeRow3 = results["txt9"];
this.GLCodeRow4 = results["txtA"];
this.AmountRow1 = results["txtB"];
this.AmountRow2 = results["txtC"];
this.AmountRow3 = results["txtD"];
this.AmountRow4 = results["txtE"];
this.Approval = results["Approval"];
},
description:
{
name: "Accounts Payable", // Dialog box title
width: 400,
height: 400,
elements:
[
{
type: "view",
align_children: "align_left",
elements:
[
{
name: "TopGapPlaceholder",
type: "gap",
height: 20,
},
]
},
{
type: "view",
alignment: "align_center",
elements:
[
{
name: "ACCOUNTS PAYABLE",
type: "static_text",
alignment: "align_center",
width: 120,
},
]
},
{
type: "view",
align_children: "align_left",
elements:
[
{
name: "TopGapPlaceholder",
type: "gap",
height: 20,
},
]
},
{
type: "cluster",
elements:
[
{
type: "view",
width: 70,
elements:
[
{
type: "view",
align_children: "align_row",
elements:
[
{
name: "Vendor #: ",
type: "static_text",
alignment: "align_right",
width: 80,
},
{
item_id: "txt1",
type: "edit_text",
multiline: false,
width: 100,
height: 20
},
]
},
{
type: "view",
align_children: "align_row",
elements:
[
{
name: "Date: ",
type: "static_text",
alignment: "align_right",
width: 80,
},
{
item_id: "txt2",
type: "edit_text",
multiline: false,
width: 100,
height: 20
},
]
}
]
}
]
},
{
type: "view",
align_children: "align_left",
elements:
[
{
name: "AboveProjectsGapPlaceholder",
type: "gap",
height: 30,
},
]
},
{
type: "view",
align_children: "align_row",
elements:
[
{
type: "view",
elements:
[
{
type: "view",
align_children: "align_left",
elements:
[
{
name: "RowGapPlaceholder",
type: "gap",
height: 20,
},
{
name: "Row 1: ",
type: "static_text",
height: 20,
},
{
name: "Row 2: ",
type: "static_text",
height: 20,
},
{
name: "Row 3: ",
type: "static_text",
height: 20,
},
{
name: "Row 4: ",
type: "static_text",
height: 20,
},
]
},
]
},
{
type: "cluster",
elements:
[
{
type: "view",
align_children: "align_center",
elements:
[
{
name: "Project #",
type: "static_text",
},
]
},
{
type: "view",
align_children: "align_left",
elements:
[
// PROJECT NUMBERS COLUMN
{
item_id: "txt3",
type: "edit_text",
//alignment: "align_row",
multiline: false,
width: 100,
height: 20
},
{
item_id: "txt4",
type: "edit_text",
//alignment: "align_row",
multiline: false,
width: 100,
height: 20
},
{
item_id: "txt5",
type: "edit_text",
//alignment: "align_row",
multiline: false,
width: 100,
height: 20
},
{
item_id: "txt6",
type: "edit_text",
//alignment: "align_row",
multiline: false,
width: 100,
height: 20
},
]
}
]
},
{
type: "cluster",
elements:
[
{
type: "view",
align_children: "align_center",
elements:
[
{
name: "General Ledger Code",
type: "static_text",
},
]
},
{
type: "view",
align_children: "align_left",
elements:
[
// GL CODES COLUMN
{
item_id: "txt7",
type: "edit_text",
//alignment: "align_row",
multiline: false,
width: 100,
height: 20
},
{
item_id: "txt8",
type: "edit_text",
//alignment: "align_row",
multiline: false,
width: 100,
height: 20
},
{
item_id: "txt9",
type: "edit_text",
//alignment: "align_row",
multiline: false,
width: 100,
height: 20
},
{
item_id: "txtA",
type: "edit_text",
//alignment: "align_row",
multiline: false,
width: 100,
height: 20
},
]
}
]
},
{
type: "cluster",
elements:
[
{
type: "view",
align_children: "align_center",
elements:
[
{
name: "Amount",
type: "static_text",
},
]
},
{
type: "view",
align_children: "align_left",
elements:
[
// AMOUNT COLUMN
{
item_id: "txtB",
type: "edit_text",
//alignment: "align_row",
multiline: false,
width: 100,
height: 20
},
{
item_id: "txtC",
type: "edit_text",
//alignment: "align_row",
multiline: false,
width: 100,
height: 20
},
{
item_id: "txtD",
type: "edit_text",
//alignment: "align_row",
multiline: false,
width: 100,
height: 20
},
{
item_id: "txtE",
type: "edit_text",
//alignment: "align_row",
multiline: false,
width: 100,
height: 20
},
]
}
]
},
]
},
{
type: "view",
align_children: "align_left",
elements:
[
{
name: "ButtonGapPlaceholder",
type: "gap",
height: 50,
},
]
},
{
type: "cluster",
align_children: "align_right",
elements:
[
{
type: "view",
align_children: "align_row",
elements:
[
// BUTTON GROUP
{
type: "ok_cancel",
ok_name: "Ok",
cancel_name: "Cancel"
},
]
}
]
}
]
}
};
if(event.source && event.source.forReal && (event.source.stampName == "#8ykdtJ56pcQrQ7Sxn1-99A"))
{
if ("ok" == app.execDialog(dialog))
{
console.println(dialog.VendorNum);
console.println(dialog.Date);
console.println(dialog.ProjNumRow1);
console.println(dialog.ProjNumRow2);
console.println(dialog.ProjNumRow3);
console.println(dialog.ProjNumRow4);
console.println(dialog.GLCodeRow1);
console.println(dialog.GLCodeRow2);
console.println(dialog.GLCodeRow3);
console.println(dialog.GLCodeRow4);
console.println(dialog.AmountRow1);
console.println(dialog.AmountRow2);
console.println(dialog.AmountRow3);
console.println(dialog.AmountRow4);
if (!dialog.VendorNum) {
this.getField("VendorNum").value = "";
} else {
this.getField("VendorNum").value = dialog.VendorNum;
}
if (!dialog.Date) {
this.getField("Date").value = "";
} else {
this.getField("Date").value = dialog.Date;
}
if (!dialog.ProjNumRow1) {
this.getField("ProjNumRow1").value = "";
} else {
this.getField("ProjNumRow1").value = dialog.ProjNumRow1;
}
if (!dialog.ProjNumRow2) {
this.getField("ProjNumRow2").value = "";
} else {
this.getField("ProjNumRow2").value = dialog.ProjNumRow2;
}
if (!dialog.ProjNumRow3) {
this.getField("ProjNumRow3").value = "";
} else {
this.getField("ProjNumRow3").value = dialog.ProjNumRow3;
}
if (!dialog.ProjNumRow4) {
this.getField("ProjNumRow4").value = "";
} else {
this.getField("ProjNumRow4").value = dialog.ProjNumRow4;
}
if (!dialog.GLCodeRow1) {
this.getField("GLCodeRow1").value = "";
} else {
this.getField("GLCodeRow1").value = dialog.GLCodeRow1;
}
if (!dialog.GLCodeRow2) {
this.getField("GLCodeRow2").value = "";
} else {
this.getField("GLCodeRow2").value = dialog.GLCodeRow2;
}
if (!dialog.GLCodeRow3) {
this.getField("GLCodeRow3").value = "";
} else {
this.getField("GLCodeRow3").value = dialog.GLCodeRow3;
}
if (!dialog.GLCodeRow4) {
this.getField("GLCodeRow4").value = "";
} else {
this.getField("GLCodeRow4").value = dialog.GLCodeRow4;
}
if (!dialog.AmountRow1) {
this.getField("AmountRow1").value = "";
} else {
this.getField("AmountRow1").value = dialog.AmountRow1;
}
if (!dialog.AmountRow2) {
this.getField("AmountRow2").value = "";
} else {
this.getField("AmountRow2").value = dialog.AmountRow2;
}
if (!dialog.AmountRow3) {
this.getField("AmountRow3").value = "";
} else {
this.getField("AmountRow3").value = dialog.AmountRow3;
}
if (!dialog.AmountRow4) {
this.getField("AmountRow4").value = "";
} else {
this.getField("AmountRow4").value = dialog.AmountRow4;
}
if (!dialog.Approval) {
this.getField("Approval").value = "";
} else {
this.getField("Approval").value = dialog.Approval;
}
}
}
Once a stamp is stamped, it no longer can be modified (it may be possible to move it around on the page, but that's about all).
So, if you "want a stamp turn into a form", you would have to start with a form right away. In other words, why don't you just place form fields your users can fill out on the document?
You would use the addField() method to add the fields.
If your document needs to be supported in Reader, you may either insist on using Reader XI or newer, or you will have to add Extended Rights.