※ 動作確認はAdobe Acrobat 8 Professionalで行いました。
「PDFファイルに有効期限を設定する」で、Acrobat JavaScriptを使ってPDFファイルに有効期限を設定する方法について紹介しましたが、全ページに対して1ページずつ設定するのは大変なので、今回はフィールドとスクリプトの挿入もJavaScriptで行う方法を紹介します。
1. Acrobatで有効期限を設定したいPDFファイルを開きます。
2. 「アドバンスト」メニューの「文書処理」から「文書のアクションを設定」を開きます。
3. 「文書を保存する」を選択し、「編集」ボタンをクリックします。
4. JavaScriptエディタに下記コードを貼り付けます。
※ 必要に応じて覆い用のフィールド名と有効期限を変更してください。
//----------------------------------------------
// 必要に応じて以下変更
//----------------------------------------------
fName = "cover"; //覆い用フィールド名
expDate = "2008/09/01"; //有効期限
//----------------------------------------------
fncAddCover();
fncAddScript();
//すべてのページにフィールドを挿入するfunction
function fncAddCover() {
for (var p = 0; p < this.numPages; p++) {
var aRect = this.getPageBox({nPage: p});
var myWidth = aRect[2];
var myHeight = aRect[1];
aRect[0] = 0; //起点(x座標)
aRect[1] = 0; //起点(y座標)
aRect[2] = myWidth; //幅
aRect[3] = myHeight; //高さ
var f = this.addField(fName + p, "text", p, aRect); //テキストフィールド挿入
f.delay = true;
f.display = display.visible; //表示
f.borderStyle = border.s;
f.textSize = 0; //テキストサイズ:自動
f.textColor = color.black; //テキストカラー:黒
f.fillColor = color.white; //背景色:白
f.delay = false;
}
app.alert("フィールド挿入処理が終わりました。");
}
//すべてのページにスクリプト挿入するfunction
function fncAddScript() {
for (var p = 0; p < this.numPages; p++) {
//スクリプト文
var myScript = 'var d = new Date();\r'
+ 'var f = this.getField("' + fName + p + '");\r'
+ 'var s = "yyyy/mm/dd";\r\r'
+ '//現在の日付が有効期限を過ぎている場合の処理\r'
+ 'if ("' + expDate + '" < util.printd(s, d)) {\r'
+ ' app.alert("閲覧期限 ' + expDate + ' を過ぎましたので文書を表示することはできません。");\r'
+ ' f.display = display.visible;\t//テキストフィールド表示\r'
+ '} else {\r'
+ ' f.display = display.hidden;\t//テキストフィールド非表示\r'
+ '}';
this.setPageAction(p, "Open", myScript);
}
app.alert("スクリプト挿入処理が終わりました。");
}
以上で作業は終了です。