Я работаю над плагином Javascript для adobe acrobat. Цель состоит в том, чтобы добавить поле с конкретным текстом для каждого поля. Морщина состоит в том, что страницы имеют разные размеры, а некоторые - в портретном и других пейзажах, и мне нужно поставить марку в соответствующую ориентацию и положение для каждого.Обнаружение вращающихся страниц в Adobe Acrobat
Я решил большую часть этого, но имею одну проблему. Когда пользователь создает страницы PDF (из программы САПР) в своей конечной ориентации, мой код (ниже) работает правильно. Если, однако, они создают страницу как альбомную, а затем используют функцию «поворот страницы» в Adobe Acrobat, чтобы сделать ее портретной, марка отображается в правильном положении, но на 90 градусов от желаемой ориентации. (Ограничительная коробка также на 90 градусов, что делает текст очень маленьким.)
Как определить, была ли страница повернута так, чтобы я мог правильно установить ориентацию поля. В качестве альтернативы, могу ли я указать поле, используя отдельное координатное место, которое не выполняется вращением?
Мой код до сих пор:
function versionStamp()
{
var oCurrentDate = new Date();
var inch = 72;
var newVersionLetter = app.response({
cQuestion: "What is the new version letter?",
cTitle: "Enter Version Letter",
cDefault: " ",
cLabel: "Rev",
});
if (newVersionLetter != null)
{
this.removeField("dateField");
for (var p = 0; p < this.numPages; p++) {
var aRect = this.getPageBox({nPage: p});
var width = aRect[2] - aRect[0];
var fieldCreated = false;
if (width == (11*inch))
{
aRect[0] += 1.1*inch;
aRect[2] = aRect[0] - 36;
aRect[1] -= 16.6*inch;
aRect[3] = aRect[1] + 1*inch;
newDateField = this.addField("dateField" + "." + p, "text", p, aRect);
newDateField.rotation = 270;
fieldCreated = true;
}
if (width == (17*inch))
{
aRect[0] += 15.57*inch;
aRect[2] = aRect[0]+1*inch;
aRect[1] -= 9.875*inch;
aRect[3] = aRect[1] - 36;
newDateField = this.addField("dateField" + "." + p, "text", p, aRect);
fieldCreated = true;
}
if (width == (24*inch))
{
aRect[0] += 1.8*inch;
aRect[2] = aRect[0] - 36;
aRect[1] -= 34.9*inch;
aRect[3] = aRect[1] + 1.75*inch;
newDateField = this.addField("dateField" + "." + p, "text", p, aRect);
newDateField.rotation = 270;
fieldCreated = true;
}
if (width == (36*inch))
{
aRect[0] += 33.17*inch;
aRect[2] = aRect[0]+1.75*inch;
aRect[1] -= 22.2*inch;
aRect[3] = aRect[1] - 36;
newDateField = this.addField("dateField" + "." + p, "text", p, aRect);
fieldCreated = true;
}
if (fieldCreated)
{
newDateField.textColor = color.red
newDateField.value = util.printd("mm/dd/yy", oCurrentDate) + " " + util.printd("HH:MM", oCurrentDate) + " " + newVersionLetter;
newDateField.readonly = true;
}
}
}
}
Это именно то, что мне нужно. Я чувствую себя немного немым, что я пропустил его в документации, но большое спасибо за указание на это! – Ethan48