Acrobatにてしおりを引っこ抜くjavascriptがAcrobat 9 Professional/Standardで使えなくなってしまった。
正確には、しおりが74個*1までなら上手くいく。75個以上のしおりが存在するときに、Acrobat8までは暗黙的な改ページが行われた。この暗黙的な改ページがAcrobat9については行われなくなったので、75個目より後のデータが取得できなくなってしまった。
というわけで、70個のしおりで、強制的に改ページする処理を入れてみた。ついでに、「ページ 階層数のカンマ しおりのテキスト」の順にしおりが出力されるようにした。
第1章 └1.1 なんとか └1.1.1 かんとか
というしおりが
1,第1章 2,,1.1 なんとか 2,,,1.1.1 かんとか
というテキストで出力される。
Acrobat7,8,9で確認済。
//開始 var gi = 0; function DumpBookmark(bm, nLevel, rep) { gi++; if ((gi + 1) % 70 == 69){ rep.breakPage(); } var s = ""; for (var i = 0; i < nLevel; i++) s += ","; bm.execute(); rep.writeText((this.pageNum+1) + s + bm.name); if (bm.children != null) for (var i = 0; i < bm.children.length; i++){ DumpBookmark(bm.children[i], nLevel + 1, rep); } } rep = new Report(); DumpBookmark(this.bookmarkRoot, 0, rep); rep.open("report.pdf"); //終了
*1:この数が環境に依存するのかは不明