ぼんやりDTP

DTPに関係したりしなかったりするぼんやりとした話をなんとなく。

Acrobat の JavaScript で PDF のしおりの改行を欧文スペースに置換する

AcrobatJavaScript で PDF のしおりの改行を欧文スペースに置換する。

InDesignで作成した目次の元テキストに強制改行とか入っていて、ブックマークに残っててもうすでにPDF書き出しちゃったよ、inddファイルから修正する時間ないよって時用に。

以下のコードの動作内容はざっくりこんな感じ。

  1. 強制改行、改行の連続を欧文スペースに置換
  2. 欧文スペースの連続を1つの欧文スペースに置換
  3. 行頭の欧文スペースの連続を削除
function removeReturnCode(strVal){
  return strVal
    .replace(/[\n\r]+/g, " ")
    .replace(/ +/g, " ")
    .replace(/^ +/g, "")
}

function removeReturnCodeFromBookmark(bkm, nLevel) {
  bkm.name = removeReturnCode(bkm.name);
  //console.println(bkm.name);

  if (bkm.children != null)
    for (var i = 0; i < bkm.children.length; i++)
    removeReturnCodeFromBookmark(bkm.children[i], nLevel + 1);
}

removeReturnCodeFromBookmark(this.bookmarkRoot, 0);