前提・実現したいこと
プログラムがまったくの初心者です。
acrobatでPDFについているしおりを別のPDFにコピーしたいのですが、
いろいろ調べてそのPDFに関してのしおりはscriptでコピーできることが分かりました。しかし、しおりのプロパティーのアクションで「ファイルを開く」や「ページビューに移動」と設定されているしおりがついているPDFはどのようなscriptを作ればよいか分かりません。
電子納品の仕事をしているのですが、大量のPDFにしおりを付けることが必要です。
ネットで検索してもあまり情報がなく、やっとJavascriputoを使うと出来ることが分かりました。それもacrobatProにしか出来ないので、会社で購入するか迷っています。(会社はstandard使用)
上記のscriptがうまくいけば購入してもらえると思いお試し版で検証中です。
別のPDFに同じしおりを付けるのは物が違うだけにページの設定をし直さなければならないのは重々承知しております。
むしろ、アクションでの「ファイルを開く」や「ページビューに移動」のしおりは
設定しなおしせず、そのままコピーしたいのです。
どうか教えください。
よろしくお願いします。
発生している問題・エラーメッセージ
エラーメッセージ
該当のソースコード
// 【関数定義】ブックマーク登録コマンド生成
function dumpBookmark(bkm, nLevel)
{
bkm.execute();
var pbkm = bkm.parent;
if (pbkm != null) {
var bkmName = bkm.name.replace(/'/g,"\'");
bkmary.push("this.bookmarkRoot.createChild('" + bkmName + "','this.pageNum = " + this.pageNum + "');");
}
if (bkm.children != null)
for (var i = 0; i < bkm.children.length; i++)
dumpBookmark(bkm.children[i], nLevel + 1);
}
// 【関数定義】ブックマークの親子関係登録コマンド生成
function dumpTree(bkm, nLevel)
{
bkm.execute();
var pbkm = bkm.parent;
if (pbkm != null) {
var pbkmName = pbkm.name.replace(/'/g,"\'");
var bkmName = bkm.name.replace(/'/g,"\'");
bkmary.push("moveBookMarkObject('" + pbkmName + "','" + bkmName + "');");
}
if (bkm.children != null)
for (var i = 0; i < bkm.children.length; i++)
dumpTree(bkm.children[i], nLevel + 1);
}
// コンソールのクリアと出力表示
console.clear(); console.show();
// ブックマーク登録コマンドのコンソール出力
var bkmary = new Array();
dumpBookmark(this.bookmarkRoot, 0);
for (var i = 0; i < bkmary.length; i++)
console.println(bkmary[i]);
// ブックマークの親子関係登録コマンドのコンソール出力
console.println('function getBookMarkObject(bkm, nLevel, sname) {if(bkm.name == sname) trgBM = bkm; if(bkm.children != null) for(var i = 0; i < bkm.children.length; i++) getBookMarkObject(bkm.children[i], nLevel + 1, sname);}');
console.println('function moveBookMarkObject(pBM, cBM) {trgBM = null; getBookMarkObject(this.bookmarkRoot, 0, pBM); var pBMO = trgBM != null ? trgBM : null; trgBM = null; getBookMarkObject(this.bookmarkRoot, 0, cBM); var cBMO = trgBM != null ? trgBM : null; if(pBMO != null && cBMO != null)pBMO.children != null ? pBMO.insertChild(cBMO, pBMO.children.length) : pBMO.insertChild(cBMO);}');
bkmary = new Array();
dumpTree(this.bookmarkRoot, 0);
for (var i = 0; i < bkmary.length; i++)
console.println(bkmary[i]);
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
Acrobat Pro DC (お試し版)
あなたの回答
tips
プレビュー