最終更新日:2012/02/25

SafariWebView2Pdf - SafariのアクティブなタブをPDFで保存するSIMBLプラグイン

動作環境

Safari 5.0.5

Safari 5.1以降では動きません。

SafariWebView2Pdfとは

Safariのアクティブなタブを1枚のPDFで保存するSIMBLプラグインです。

1枚のpdfにするのはSafariStandでできますが、AppleScriptから実行できるのと、CSSのmediaを指定できるのが特徴です。mediaをscreenにすると現在表示されている内容をそのまま一枚のpdfにできます。ちなみにGUIは付いていないので実行用AppleScriptを用意する必要があります。

ちなみに作った理由はSafari_WebPages_to_One_PDFでSafariで表示している内容をそのまま保存したいと思ってJavaScriptでページ内容を取得して、URLToImageで設定してみましたが、どうしてもうまくいかないサイトがあり、これはSafariで表示している内容をそのまま保存するしかないと思い、ちょっと調べてみたらアクティブなタブのWebViewをpdfに保存するのなら簡単にできそうなのでやったみたらできました。

ダウンロード

保存用AppleScript

上記AppleScriptでpdfにすると下記画像のような見出しタグ(h1,h2...)をアウトラインにしたpdfができますが、苦労した割には有用なアウトラインができるサイトはあまり無い感じでした…。

使い方

tell application "Safari"
-- アクティブなタブをpdfpngで保存する。
-- {"保存するパス", "media", "printbackgrounds", "URL", "Max Width", "Max Height 倍率"}
-- "保存するパス" -- 保存するpdfのパス。ファイルの拡張子をjpgpngにすると画像で保存することも可能。
-- "media" -- 適用するCSSmedia。空文字で変更しない
-- "printbackgrounds" -- "printbackgrounds"で背景を印刷する。それ以外で印刷しない
-- "URL" -- 指定した場合、対象のURLWebViewを保存します。未指定、空文字でアクティブなタブになります。
-- "Max Width" -- 画像にするエリアの最大幅。未指定で全体。文字列で指定するのに注意
-- "Max Height 倍率" -- 画像にするエリアの高さの横幅に対する倍率。未指定で全体。"1"にすると正方形になります。文字列で指定するのに注意
-- 後ろの設定はオプションで省略可能です
set theResult to «event SW2PsPDF» {"~/Desktop/SafariWebView2Pdf output.pdf", "screen", "printbackgrounds"}
set theResult to «event SW2PsPDF» {"~/Desktop/SafariWebView2Pdf output.png", "screen", "printbackgrounds", "", "400", "1.5"}
if theResult is not "" then
beep
log theResult -- エラーの場合エラー内容の文字列が返ります
end if
end tell