こんにちは。いつも楽しみに拝見しています。
みんな大好きなスクリプトの悩みです。
InDesign上でブックマークを手動作成するにあたり、
①テキスト中の改行文字がしおり名では半角スペースに変換される
②先頭から100文字までしか拾われない
という個人的難点がありまして、
いつもブックマークパネル上なりPDF上なりでちまちまと修正していたので、
ここはひとつスクリプトで、と思いたち、簡単なものを書いてみました。
長すぎる文言は100字ごとに分けて作成しておき、
あとでAcrobat上でしおりの名前をコピペしてニコイチするという、ださい作戦です。
var doc = app.activeDocument;
var sel = doc.selection[0]; //Text
var ary = sel.contents.replace(/[\n\r]/g, "").match(/.{1,10}/g); //テストなので10字刻み
for(var i = 0; i < ary.length; i++){
var ht = doc.hyperlinkTextDestinations.add(sel);
var bm = doc.bookmarks.add(ht, {name: ary[i]});
}
しかし。実行結果がこんなことになりました。
1つ飛ばしで名前が付けられていない。
処理が追いついてないのかと思い、やや書き換えました。
が、結果はまったく変わりませんでした。
var doc = app.activeDocument;
var sel = doc.selection[0]; //Text
var ary = sel.contents.replace(/[\n\r]/g, "").match(/.{1,100}/g);
for(var i = 0; i < ary.length; i++){
var ht = doc.hyperlinkTextDestinations.add(sel);
var bm = doc.bookmarks.add(ht);
$.slee