AcrobatでPDFの一括印刷
今日はWindows環境で大量のPDFファイルをAcrobatを通じて印刷する問題について考えてみた.
PDFファイルを印刷する場合,普通はPDFファイルをAcrobat(或いはAdobe Reader)で開き,印刷ボタンを押すなりして印刷にかけるだろう.そうするのが面倒に思えるほど大量のPDFファイルが目の前にある場合,エクスプローラでファイルを一括選択して印刷を押す方法を使う人も多いかもしれない.しかしながら,この方法には以下のような問題もある.
- 一度に印刷出来るのが15件までである
- 印刷順序が入れ替わってしまうことがある
つまり,15枚まとめて印刷できるので1個ずつ処理するより手間は省けるものの,ファイルが沢山あれば人間がそれに付き合わなければならないという点で,一括印刷ではない.そればかりか,2の問題によって印刷後にソートする手間まで余計に生じるのである.
そこでこの記事では,印刷をバッチ化してディレクトリ内のPDFファイルをまとめて印刷する方法について考える.
印刷にはAcrobat(或いはAdobe Reader)を使いたい.Acrobat互換のPDFビューワを使えばバッチ化がもっと簡単だったりするのだが,印刷後に思っていたフォントと違うとかレイアウトが崩れているなどの不具合も多い.やはりAdobe社製のアプリケーションが安心だ.手始めに,Acrobat および Adobe Reader のコマンドラインオプションを調べてみると,サポート対象外ながら「Adobe Readerを起動し、印刷ダイアログボックスを表示せずに PDF ファイルを印刷し、Adobe Reader を終了する
」なるオプション/t
が用意されている.これを使おう.
さっそくAcrobat.exe /t hoge.pdf
と打ってみたところ,Acrobatが終了せずに残ってしまった.仕様には「Adobe Reader を終了する
」って書いてあるじゃないか,嘘つき.ここは終了してくれないと,バッチ処理で次の命令に移行出来ないので困るのだ.コマンドラインでPDFファイルを印刷する。(Acrobat Reader 6.0)にも印刷後もAcrobatが残ってしまうことが指摘されていた.
いずれの場合も印刷後、アプリが残るので別途終了(CTRL+Q)が必要です。新規でないとき、/tは、新規ウィンドウを開いて、印刷後消えます。
そういう仕様らしい.サポート対象外だからって,雑な仕事である.そして同記事の続きにあるように,新規起動でなければ(2つめ以降の起動ならば)仕様書どおり自動終了するらしいことも判った.これを利用しよう.次のような作戦を立ててみた.
- 空のAcrobatを起動する
- フォルダ内のPDFファイルを印刷する
- Acrobatを終了する
バッチファイルで書くと次のようになる.
start "" "Acrobat.exe"
pause
for %%i in (*.pdf) do ("Acrobat.exe" /n /t %%i)
taskkill /im Acrobat.exe
pauseが入っているのはAcrobatの起動が完了するまで待つためだ.起動したのを確認してから先に進める.自動化にこだわりたい人は適当な時間待つような命令に差し替えればよい.こうして無事に印刷が出来た.
「PDF 一括 印刷」とかでググってみれば,半自動なバッチで我慢していたり,VBスクリプトから呼び出してみたり,WSHと組み合わせたりと,皆この問題に苦心して実装しているようである.本手法も完璧ではないものの,バッチファイルだけで実装した自動化としては成功している.この記事がPDFファイルを大量に印刷する人たちの助けになれば幸いである.
MiniDiary
目的は
学会の研究発表梗概集をまとめて印刷したかったのです.
動作環境
ちなみに試した環境はWindows7 + Acrobat XIです.環境に強く依存する命令は使っていないので大抵の環境では同じ方法が使えると思いますが念のため.
Adobeの事情
どう考えても必要な機能が中途半端にしか実装されてないこの状況.Adobe先生にも何らかの事情があるのでしょうねぇ.
投稿者 | CASPAR003 |
投稿時刻 | 22:34 |
カテゴリー | 備忘録 |
コメント | 2 件 |
トラックバック | 0 件 |
記事へのリンク | http://www.caspar003.info/delta/archive/2014/07/09/2234.html |
コメント
- 投稿者
- Caesar
- CASPAR003
トラックバック
- トラックバック