コモノExtendScript100本ノック

超初心者のDTPオペレーターが週にひとつスクリプトを書くブログ

026.【Acrobat】注釈テキスト取得

※バッチシーケンスに組み込んで使う用

書いたコード

var annots = this.getAnnots();
var annotsLen = annots.length;
var annotsPrep = [];
var annotsTxt = "";

for (var i = 0; i < annotsLen; i++) {
  annotsPrep.push([annots[i].page, annots[i], annots[i].contents])
}
annotsPrep.sort(compareNumbers);
for (var j = 0; j < annotsLen; j++) {
  if (j !== 0) {
    if (annotsPrep[j][0] != annotsPrep[j - 1][0]) {
      annotsTxt = annotsTxt + "〓〓〓" + (annotsPrep[j][0]+ 1) + "ページ〓〓〓\n"
    }
  } else {
    annotsTxt = annotsTxt + "〓〓〓" + (annotsPrep[j][0] + 1) + "ページ〓〓〓\n"
  }
  annotsTxt = annotsTxt + annotsPrep[j][2] + "\n"
}
annotsTxt =annotsTxt.replace(/\n+(?=\n)/g, "");
console.clear();
console.show();
console.println(annotsTxt);


function compareNumbers(a, b) {
  return a[0] - b[0];
};

メモ

つっかかったところ

正規表現の書き方でかなり時間をとってしまった。
- gをつけ忘れた
- 後読みできないことを忘れてた

分からなかったところ

注釈のあるページの名前がとりたかったのだけど分からなかった。
annots.pageは多分絶対ページ番号。

参考