AcrobatProでJSを書いて、PDFをExcelに再帰的に一括変換するツールを作った話


【ツールの概要】
PDFが入ったフォルダを再帰的にめぐり、同じ階層にエクセル置換した同名ファイルを作成する。
一回一回書き出しをやるのがめんどくさい人向け。

一般的なJSとはちょっと異なるAcrobatJSを使う必要があり、文献的に苦労したため備忘的に投稿。

参考:
↓公式リファレンス↓
https://www.adobe.com/content/dam/acom/en/devnet/acrobat/pdfs/js_api_reference.pdf

下準備編  「ツールを作成できる環境にする。」

1.「編集」→「環境設定」→「JavaScript」

ソース入力編  「JavaScriptを入力して保存する。」
※再帰的な処理の方法の記述が公式になかったため、代わりにアクションウィザードにその部分を担ってもらってます。
※それゆえに記述は単回処理用です。for文ぐるぐるはアクションウィザードがやってくれます。

1.「ツール」→「アクションウィザード」→「追加(もしくは開く)」

2.「新規アクション」をクリック。

3.「その他のツール」→「JavaScriptを実行」

4.「(真ん中あたりの)+→ボタン」で右側に追加(「ユーザーに確認」はチェック外すのをおすすめ)

5.設定を指定を押す。

6.入力欄にソースを流し込み、「OK」を押し、保存を押す。

<ソース>

/*---------------------------------------------*/
/*パスまわりを取得*/
var fullPath = this.path;
var fileName = this.documentFileName;
var naturalFileName = fileName.substring(0,fileName.length-4);
var tmpFolderPath = fullPath.substring(1,fullPath.length-fileName.length).replace("\\","\\\\"); 

/*Cドライブ以外だと動作しないためアラートを設定*/
if(tmpFolderPath.substring(0,1)!="C"){
    app.alert("Cドライブのみ対象");
}

/*「:」の文字が取得できなかったため、人為的に付与。*/
var folderPath = tmpFolderPath.substring(0,1) + ":" + tmpFolderPath.substring(1,tmpFolderPath.length);

/* Excelファイルに変換して保存、閉じる*/
   saveAs(folderPath + naturalFileName +".xlsx", "com.adobe.acrobat.xlsx");



/*---------------------------------------------*/

7.好きなアクション名を付ける。私はここではテストと名付けています。

実行編  「実際に動かす。」

1.右側のアクションリストから「テスト(自分の名付けたアクション名)」をクリック。

2.一括変換したいPDFファイルがあるフォルダを選択して、対象のファイルがリストアップされたら開始を押下