【macOS】Automatorで「pdf => png」「png => pdf」のクイックアクションを作る

# 参考元

[Automatorを使って、PDFをpngに変換してPDFファイルと同名のディレクトリに置く](https://dev.classmethod.jp/articles/convert-pdf-to-png-and-save-into-directory-of-name-of-pdf-file/)
[夏目祐樹](https://dev.classmethod.jp/author/natsume-yuta/)

これのパターンを元に手を加えた

# やりたいこと
pdfへの直書きができなかったり，写真をそのまんまpdfでまとめたかったり，そういう時にGUIをいちいち立ち上げるのは面倒すぎた
あとBig Surのプレビュー.appが[72dpiでしかラスター出力できなくなってて](https://discussionsjapan.apple.com/thread/252658227)詰んだ，それだと細かく書ききれないからマジで辛い…


### 縛り

+ Automator使用
  + 簡単に
  + 汎用に
  + 単一完結
+ クイックアクションとして呼び出す
  + それならファイルを右クリックして呼び出せる
  + アプリケーションとして？そんなん要らんやろ
+ Apple Scriptなし
  + Finderやプレビューの呼び出し説明書を読む気力が全くない
  + 本当ならScriptを書いて完結させるのがスマートだとは思う



# PDF to PNG
1つのpdfから複数のpng

## 1.pdfファイルの受け入れ
![1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/540440/db4c9861-2c73-36f6-630b-dc87d7d68442.png)

### ポイント
Automatorにはパス操作向けのテキスト処理の機能がないからbashのちからを借りるぜ！
入力は引数として入ってきた順番で`$1`，`$2`みたいになるぜ！
標準出力がそのままモジュールの出力になるぜ！
`basename`にこんな感じにフルパスと拡張子を渡せば元のファイルの名前が得られるぜ！


## 2.生成するpngファイルの命名
![2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/540440/5a25c922-0bd9-f57c-aa74-87691db03268.png)

### ポイント
デフォルトだと元のpdfの名前がつくようになってるぜ！


## 3.元のpdfファイルがあるフォルダのパスを取得
![3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/540440/ecda30b7-73cf-eb0b-3117-f57b18d5d0e9.png)

### ポイント
bashのちからを借りるぜ！
pngファイルをしまうフォルダを作るのに必要だぜ！
`dirname`にこんな感じにパスを渡せば1段だけ上のディレクトリのパスが得られるぜ！


## 4.収納するフォルダのパスを生成
![4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/540440/9e1ed93c-db97-3365-2b59-78c41dc52ab5.png)

### ポイント
bashのちからを借りるぜ！
pngファイルをしまうフォルダを作るのに必要だぜ！
さっき作ったフォルダの下にさっきつけた名前でフォルダを作った時のパスが得られるぜ！
ただし末尾に**_PNGs**をつけてわかりやすくしてやるんだぜ！


## 5.収納するフォルダを生成
![5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/540440/372ba8e0-a122-ee12-e177-eb2186e9d63e.png)

### ポイント
こっちも末尾に**_PNGs**をつけるんだぜ！


## 6.pngをレンダリング
![6+.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/540440/026557e4-21ad-a40d-b9fd-2ebb695e39cf.png)

### ポイント
他の拡張子を選ぶといろんな設定が出てくるぜ！
ちなみに350dpiは日本の印刷機には多い要件らしいんだぜ！



## 7.名前を編集してフォルダに収納
![7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/540440/0115ec5f-f1ba-6c74-970f-235c43a11ebc.png)

### ポイント
作成日の昇順で並べてから1スタートの連番を通すとページ数になるぜ！
（ところでフォルダに収納しなかったファイルはどこにいくんだろうな）



# PNG to PDF
複数のpngから1つのpdf


## 1.pngファイルの受け入れ
![1+.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/540440/ef24743d-1551-b9b0-c7db-fbad04b59486.png)

### ポイント
さっきとほとんど同じだぜ！
複数選択の場合だとFinder表示上のトップファイルが変数の先頭になるっぽいぜ！


## 2.生成するpdfファイルの命名
![2+.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/540440/0f7321f9-587d-349f-b7ef-1f871f032d5f.png)

### ポイント
さっきとほとんど同じだぜ！


## 3.元のpngファイルがあるフォルダのパスを取得
![3+.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/540440/9f00c8bc-6122-261b-ef2e-073ee4c7e915.png)

### ポイント
さっきとほとんど同じだぜ！
元の画像たちはなるべく1つのフォルダにまとめて置いとくことをおすすめするぜ！


## 4.収納するフォルダのパスを生成
![4+.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/540440/0d179c1f-fb0f-f6bb-87c9-32f094429edc.png)

### ポイント
さっきとほとんど同じだぜ！
ただし末尾に**_PDF**をつけてわかりやすくしてやるんだぜ！


## 5.収納するフォルダを生成
![5+.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/540440/8f05d48c-2fba-10ae-1639-3bfbd5b02d8e.png)

### ポイント
こっちも末尾に**_PDF**をつけるんだぜ！


## 6.pdfをレンダリング
![6++.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/540440/36c23511-102a-5b33-ff73-dd29294a4a18.png)

### ポイント
pngファイルの名前の順にページを編み込めるぜ！
並びを指定したい時は名前を変えればいいんだぜ！


## 7.名前を編集してフォルダに収納
![7+.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/540440/5daa9a40-c7ba-5401-2115-b25c8a103bf3.png)

### ポイント
さっきとほとんど同じだぜ！
基本名だけ変えた方が安全だぜ！




# 感想
確かに手間は省けるようになった．
ただしpdfからの変換は全てのページがpngになるので，不要なものは手動で消さねばならない
…おとなしくクリスタEXとpdf対応IOプラグインを買いたいなと思いました．~~CELSYS万歳！~~