紙へ印刷する代わりにPDFへ出力できるのは、macOSユーザにとって当たり前のこと。しかし、出力するたびにプルダウンメニューで「PDFとして保存」を選択しなければならず、ネットワークプリンタとして他のPCやスマートフォンからPDF出力することはできない。今回は、その悩みを解決する「PDFプリンタ」について考えてみたい。

macOSの印刷システムとPDF

macOSの印刷システムは、OS Xリリース当初のLPRに代わり「CUPS(Common UNIX Printing System)」が採用されている。変更はJaguar(OS X 10.2)のときだから、かれこれ14年以上の実績を持つわけで、macOSのユーザのみならずプリンタメーカーにも運用ノウハウが蓄積されていると考えられる。

CUPSでは、プリンタードライバはCUPSの「フィルタ」として存在する。通常は/usr/libexec/cupsディレクトリ以下に実行ファイルが置かれ、プリンタ定義ファイル(*.ppd)に従い処理が進行する形だ。インク残量チェックなど付加機能の違いこそあれ、この印刷機構に従うことはmacOSをサポートするすべてのプリンターメーカーの製品で変わらない。

そのフィルタによって加工されたデータをプリンタに送信するプログラムが「バックエンド」だ。macOSの場合、/usr/libexec/cups/backendディレクトリに「usb」や「bluetooth」など名称で置かれ、それぞれの対応するデバイスへと送信される。

前置きが長くなったが、今回取りあげる「VipRiser」は、CUPSの仕組みを活用したPDF生成ツールだ。システム環境設定の「プリンタとスキャナ」パネルに登録されるプリンタに見えるが、その実体はプリンタ制御ファイルとCUPSバックエンドであり、印刷イメージ(PDF)を実デバイスへ送信せずにファイルとして所定の場所に保存する。かつては「CUPS-PDF」がこの種のソフトとして定番だったのだが、現在はサポートされていないため、macOS SierraユーザはこのVipRiserを利用しよう。

CUPS準拠のPDFジェネレータ「VipRiser」は、システムには仮想プリンタとして認識される

共有機能を有効にすれば、他のMacからPDF生成を実行することもできる

VipRiserで仮想PDFプリンタを

VipRiserのインストールは、少々厄介だ。Mac App Store外で公開されているため、インストーラを開くときにはControlキーを押しながらクリックし、メニューの「開く」を選択することになるが、パッケージ内のファイルの属性情報に問題があるようで「"VipRiser"を開けません。ゴミ箱に入れる必要があります」というダイアログが現れ先へ進めなくなる。面倒でも、Terminalでxattrコマンドを実行し(xattr -rc VipRiser.app)、拡張属性を消去しておこう。

初回の起動でこのようなダイアログが現れた場合は、xattrコマンドで拡張属性をクリアする

「xattr -rc」の引数にVipRiserのフルパス(この例ではデスクトップに保存)を指定する

無事アプリケーションを開くことができると、「The printer is out of date, would you like to install it?」と訊ねられるので、ここで「Yes」を選択すればCUPSのドライバやPPDファイルがインストールされる。

なお、/usr/libexec/cupsディレクトリはOS X El Capitanから導入された「System Integrity Protection(SIP、いわゆるrootlessモード)」の例外領域とされているため、管理者権限があればファイルの保存/変更が可能だ。実際、VipRiserでもCUPSドライバをインストールすれば、/usr/libexec/backendディレクトリ以下に「vipriser」や「vipriser-ps」といったファイルがコピーされる。

/usr/libexec/cups/backendディレクトリを見ると、VipRiser関連のスクリプトを確認できる

これで、VipRiserの初期設定は完了だ。メニューバーに常駐するアイコンをクリックすれば、PDFの保存先など各種の設定を変更できる。ローカルディスクに限らず、DropBoxやKindleといったクラウドサービスへ直接転送することもできるので、一般的なプリンタのPDF出力よりも柔軟な使いかたが可能になる。内蔵のHTTPサーバを利用しRSS配信することもできる(ファイル名に日本語が含まれると正常動作しないが)など、かなり多機能といえるだろう。

ネットワークプリンタとしても利用できる。VipRiserはCUPS準拠のプリンタとして動作するため、システム環境設定「プリンタとスキャナ」パネルにエントリが作成されているので、ここにある「ネットワークでこのプリンタを共有」をチェックすれば準備完了だ。他のPCには「Print to VipRiser」という名のプリンタとして検出されるので、ここをめがけて印刷すれば、Mac上に(設定次第ではクラウドなど他領域に)PDFとして出力されるはずだ。

PDFの保存場所などVipRiserの設定は、メニューバーのアイコンから開始する

PDFが生成されると、このように通知してくれる