ぼんやりDTP

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

Acrobat の JavaScript で PDF のしおりの全角英数記号を半角に変換する

AcrobatJavaScript で PDF のしおりの全角英数記号を半角に変換する

サンプルコード

function toHalfWidth(strVal){
  var halfVal = strVal.replace(/[!-~]/g,
    function( tmpStr ) {
      return String.fromCharCode( tmpStr.charCodeAt(0) - 0xFEE0 );
    }
  );
 
  return halfVal
    .replace(/ /g, " ")
    .replace(/〜/g, "~");
}

function convertBookmarkToHalfWidth(bkm, nLevel) {
  bkm.name = toHalfWidth(bkm.name);
  //console.println(bkm.name);

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

convertBookmarkToHalfWidth(this.bookmarkRoot, 0);

変換の対応文字

!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ 〜

参考ページ

  1. Acrobat DC SDK Documentation
  2. JavaScriptで英数を全角/半角に変換する方法 - Qiita
  3. JavaScript で英数字や記号を全角から半角へ変換する方法