Acrobat Professional以外でカスタムスタンプを任意の位置に貼り付けする

Acrobat Professionalではない環境で、スタンプを位置指定して押したいときのメモ。

実行はStandardやReaderでできるようだが、位置調整などをしたい場合はProfessional版の方が明らかに便利なので、その点は留意必要。

環境

Acrobat 2017 Professional

Acrobat 2015 Standard

 

できること

Acrobatでpdf編集時、好きなスタンプを指定の位置(数値指定)にて繰り返し押せるようになる

 

具体的手順

・下記スクリプトが記述されたjavascriptファイル(以下config.jsとする)をAcrobatのFolder Level Scriptsの実行フォルダに追加する。

例えば2017では以下。たぶん他バージョンも大きく変わらない。

C/Program Files (x86)/Adobe/Acrobat 2017/Acrobat/JavaScripts

・Acrobatのスタンプ機能で、押したいスタンプを押す。

・スタンプを選択した状態で、編集⇒Custom Edit Menu⇒Get Selected Stamp’s APを選択

・表示された値(キー)をコピーする。

 

・上で追加したconfig.jsをほかの場所で開き編集する。

・function LogoStamp()の中の、要素APの値を上記キーに入れ替える。

・Folder Level Scriptsの実行フォルダのconfig.jsを上書きする。

・再度pdfを開き、編集⇒Custom Edit Menu⇒First Page Logo Stampを押す。

 

以上、お疲れさまでした。

 

具体的コード

// Acrobat のjavascriptフォルダ直下に入れて使用する。
// Acrobatのセキュリティ上↑のフォルダアドレスは本プログラムから取得しようとするとNotAllowedErrorが出るため見送り。
// 2017では/C/Program Files (x86)/Adobe/Acrobat 2017/Acrobat/JavaScriptsになる。他もたぶん同様。

app.addSubMenu({ //親メニューの設定
    cName: "CustomEditMenu", //親メニュー名(日本語不可)
    cParent: "Edit" //親メニューの表示箇所(日本語だと「編集」メニュー。最近のボタン大きい方ではない)
}); //親メニューを追加
app.addMenuItem({
    cName:"Get Selected Stamp's AP",
    cParent:"CustomEditMenu",
    cExec:"GetSelectedAP()"
})
app.addMenuItem({
    cName:"First Page Logo Stamp",
    cParent:"CustomEditMenu",
    cExec:"LogoStamp()"
})
function GetSelectedAP(){
    var s = this.selectedAnnots[0].AP
    var cResponse = app.response({
        cQuestion: "Below is selected stamp's AP",
            cTitle: "Got AP",
            cDefault: s
    });
}
function LogoStamp(){
    // ロゴ
    this.addAnnot({
        page: 0,
        type: "Stamp",
        author: "Author",
        name: "Logo1",
        rect: [70, 700, 130, 760],
        AP: "#bEHdpLoXouL3PY75hv03yD" });
}

 

参考

Qiita

※この記事は文系的冗長性及び反知性的曖昧主義に支配されています^1。プレ金を、きっかけに!〜とあるプレミアムフライデー^…

※記事内ではconst定義にてアイテムの値を定義しているが、当方の環境ではエラーが出て実行できなかった。

 

There are a number a different ways to automate document pro…

Folder Level Scriptsの場所などのサンプル

 

In this tutorial, learn how to create folder level scripts, …

最初に実行するサンプルとしてわかりやすい。

 

Learn how to integrate PDF products and features in your app…

公式リファレンス。

 

https://community.adobe.com

I have a PDF form, in which there's a button. When the user …

Response Boxを使えばいい、という回答

 

The Acrobat JavaScript Model includes several user interface…

Response Boxとはこういうもの

 

amiza_retのブログ

さて、InDesignのネタが尽きはじめているので(笑)、Acrobatのjavascriptのいろいろ。っていっても、…

Acrobat javascriptの例