2
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Last updated at Posted at 2019-05-13

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

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

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

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

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

下準備1.png

下準備2.png

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

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

2.「新規アクション」をクリック。
JS入力編2.png

3.「その他のツール」→「JavaScriptを実行」
JS入力編3.png

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

5.設定を指定を押す。

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

<ソース>

/*---------------------------------------------*/
/*パスまわりを取得*/
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.好きなアクション名を付ける。私はここではテストと名付けています。
JSソース入力後.png

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

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

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

2
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?