04/21 Safariの最前面のWindowの内容を1枚もののPDFにレンダリングしてデスクトップへ
Safariでオープン中の最前面のWindowの内容をデスクトップにPDF出力するAppleScriptです。
Web関係の仕事をすると、地味に必要になってくる「指定ページを1枚ものの画像にまとめた」PDF。Keynoteの書類などに貼り付けてページ遷移の説明を行ったりするのは、よくある話です。
Safariの最前面のWindowでオープン中のURLを取得し、CLI Webレンダラー「Wkpdf」でPDFにレンダリング出力します。

その際に、ファイル名は日付をもとに生成。1枚ものの「長いPDF」として出力するためにWkpdfのレンダリングオプションを指定してページネーションを抑止したり、背景画像の表示をイネーブルにしたりと、見所はそのぐらいで、あとはたいしたことのないあっさりとした処理ばかりです。
Script Menuに入れて使うと便利です。ただ、使用頻度は人によって個人差がありそうなので、実用性がきわめて高い便利なScriptの割には忘れ去られそうな可能性も(自分でも、作っていたことを忘れていました)。
Wkpdf自体のインストールについては、Terminalからコマンドを叩いて行っておく必要がありますが、たいして難しくないので大丈夫でしょう。
| スクリプト名:最前面のWindowの内容を1枚もののPDFにレンダリングしてデスクトップへ |
| tell application “Safari” set wCount to count every window if wCount < 1 then display dialog “Windowが存在しません” buttons {“OK”} default button 1 return end if tell window 1 set aInfo to properties end tell set aDoc to document of aInfo tell aDoc set aURL to URL end tell end tell set aFileName to “webOut” & (do shell script “date +%Y%m%d%H%M%S”) renderURLtoPDF(aURL, aFileName) of me on renderURLtoPDF(aURL, aFileName) set s1Text to “cd ~/Desktop && “ set outPath to POSIX path of (path to desktop) & aFileName & “.pdf” set s2Text to “wkpdf –source “ & aURL & ” –paginate false –print-background –output “ & outPath set sAll to s1Text & s2Text do shell script sAll end renderURLtoPDF (* –指定URLの内容をレンダリングしてPDFに書き出す on renderURLtoPDF(aURL, aFileName) set dDir to POSIX path of (path to desktop from user domain) set outFile to dDir & aFileName & “.pdf” try do shell script “cd /usr/local/bin && /usr/local/bin/coral -f PDF -o ” & quoted form of outFile & ” ” & aURL & ” &” on error return false end try –return outFile end renderURLtoPDF *) |

















