Как редактировать только последнюю измененную аннотацию (Ink) с использованием JavaScript с помощью Acrobat XI? - PullRequest
0 голосов
/ 09 мая 2018

Мне нужно создать несколько кнопок в PDF, которые при нажатии изменят цвет инструмента «Чернила / Карандаш» в Acrobat. Я не разбираюсь в JavaScript и изо всех сил пытался найти адекватную документацию для того, что я пытаюсь достичь.

Я нашел способ сделать обратное, я могу сделать аннотацию и заставить кнопку изменить цвет чернил после того, как они нарисованы. Это удовлетворяет мои потребности, но я не понял, как редактировать только LAST-измененную / созданную аннотацию. Пока у меня есть следующее:

var buttonColor = this.getField("button").strokeColor;
this.syncAnnotScan();
var annots = this.getAnnots()
    nSortBy: ANSB_ModDate
    bReverse: true;

for (var i = 0; i < annots.length; i++) {
    if (annots[i].type == "Ink") {
        annots[i].strokeColor = buttonColor;
    }
}

Это приводит к тому, что кнопка изменяет ВСЕ аннотации чернил; Я просто не уверен, как сказать сценарию редактировать только последние / созданные аннотации (если возможно), все остальное работает как нужно.

1 Ответ

0 голосов
/ 10 мая 2018

Вам не нужно сортировать аннотации, чтобы добраться до последнего созданного, это всегда последний элемент в массиве. Вам не нужно передавать какие-либо параметры в getAnnots ().

var buttonColor = this.getField("button").strokeColor;
this.syncAnnotScan();
var annots = this.getAnnots();

if (annots[annots.length-1].type == "Ink") {
    annots[annots.length-1].strokeColor = buttonColor;
}

PDF-файл с этим документом можно посмотреть по указанному ниже URL-адресу. https://files.acrobat.com/a/preview/69dd17f9-66f5-496b-a2d1-bfaab21ccdec

...