Отрабатывая шаблон для цифрового штампа, используемого в программе разметки PDF под названием Bluebeam, и у меня возникают проблемы с определением места в коде и какой функции использовать для вставки простого текста в диалоговое окно Javascript (см.красный текст ниже даты прикрепленного изображения).Есть глобальный сценарий и сценарий расчета (сценарий расчета расположен в скрытом текстовом поле на марке).Извините, если на такой вопрос ответили в другом месте на этом сайте;Я не слишком уверен, какой жаргон кодирования использовать мой поиск.Кроме того, Bluebeam, очевидно, использует Adobe API, если это вообще полезно.
Спасибо.
https://imgur.com/gallery/7Y3HvAh
//GLOBAL SCRIPT
var builder =
{
textBoxes :
[
{ field:"Date", description:"Date:", default:function()
{
var curDate = new Date();
return ('0' + (curDate.getMonth() + 1)).slice(-2) + "/" + curDate.getDate() + "/" + curDate.getFullYear();
}
}
],
}
//CALCULATION FIELD
if (event.source.forReal)
{
if (!TryUseStoredSettings())
{
var stampDialog = CreateDialog(builder);
app.execDialog(stampDialog);
this.getField(builder.listGroup).value = stampDialog.listSelection;
for (var i = 0; i < builder.textBoxes.length; ++i)
{
var t = builder.textBoxes[i];
this.getField(t.field).value = stampDialog.textBoxResults[i];
}
StoreSettings(stampDialog);
}
}
function TryUseStoredSettings()
{
console.println("TryUseStoredSettings");
var globals = new Array();
for (var g in global)
globals.push(g);
if (globals.indexOf("lastStamp") < 0 || globals.indexOf("lastFile") < 0)
return false;
if (this.path == global.lastStamp && event.source.source.path == global.lastFile)
{
this.getField(builder.listGroup).value = global.lastlistSelection;
for (var i = 0; i < builder.textBoxes.length; ++i)
{
var t = builder.textBoxes[i];
this.getField(t.field).value = global["lastTextBox" + i];
}
console.println("return true");
return true;
}
console.println("return false");
return false;
}
function StoreSettings(stampDialog)
{
console.println("StoreSettings");
global.lastStamp = this.path;
global.lastFile = event.source.source.path;
global.lastlistSelection = stampDialog.listSelection;
for (var i = 0; i < builder.textBoxes.length; ++i)
{
var t = builder.textBoxes[i];
global["lastTextBox" + i] = stampDialog.textBoxResults[i];
}
}
function CreateDialog(dialogBuilder)
{
var sd = new Object();
sd.builder = dialogBuilder;
sd.radioSelection = "";
sd.listSelection = "";
sd.textBoxResults = new Array();
var listElements = new Array();
listElements[0] =
{
type: "list_box",
item_id: "listboxItems",
field: sd.builder.listGroup,
width: 250
};
var listCluster =
{
type: "cluster",
name: builder.listGroup,
elements: listElements
};
var optionsElements = new Array();
for (var i = 0; i < dialogBuilder.textBoxes.length; ++i)
{
var view = new Object();
view.type = "view";
view.align_children = "align_row";
view.elements = new Array();
var t = dialogBuilder.textBoxes[i];
var s = new Object();
s.type = "static_text";
s.item_id = "sta" + i;
s.name = t.description;
s.width = 90;
var e = new Object();
e.type = "edit_text";
e.item_id = "edt" + i;
e.width = 150;
view.elements[0] = s;
view.elements[1] = e;
optionsElements[i] = view;
}
var optionsCluster =
{
type: "cluster",
name: "Please enter date in MM/DD/YYYY format.",
elements: optionsElements
};
sd.initialize = function(dialog)
{
var init = new Object();
for (var i = 0; i < this.builder.textBoxes.length; ++i)
{
var t = this.builder.textBoxes[i];
var id = "edt" + i;
init[id] = t.default();
}
dialog.load(init);
dialog.load(this.builder.listItems[0]);
};
sd.commit = function(dialog)
{
var res = dialog.store();
for (var i = 0; i < this.builder.textBoxes.length; ++i)
{
var t = this.builder.textBoxes[i];
var id = "edt" + i;
this.textBoxResults[i] = res[id];
}
for (var i in res["listboxItems"])
if (res["listboxItems"][i] >0)
{
this.listSelection = i;
}
};
sd.description =
{
name: "Acceptance Stamp",
elements:
[
{
type: "view",
align_children: "align_fill",
elements:
[
listCluster,
optionsCluster
]
},
{
type: "ok"
}
]
};
return sd;
}