>>Delta

AcrobatでPDFの一括印刷

2014年7月 9日

AcrobatでPDFの一括印刷

今日はWindows環境で大量のPDFファイルをAcrobatを通じて印刷する問題について考えてみた.

PDFファイルを印刷する場合,普通はPDFファイルをAcrobat(或いはAdobe Reader)で開き,印刷ボタンを押すなりして印刷にかけるだろう.そうするのが面倒に思えるほど大量のPDFファイルが目の前にある場合,エクスプローラでファイルを一括選択して印刷を押す方法を使う人も多いかもしれない.しかしながら,この方法には以下のような問題もある.

  1. 一度に印刷出来るのが15件までである
  2. 印刷順序が入れ替わってしまうことがある

つまり,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つめ以降の起動ならば)仕様書どおり自動終了するらしいことも判った.これを利用しよう.次のような作戦を立ててみた.

  1. 空のAcrobatを起動する
  2. フォルダ内のPDFファイルを印刷する
  3. 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
トラックバックURI http://www.caspar003.info/movable_type/mt-trackbacks_ca3.cgi/3641
コメント
投稿者
コメント
Caesar

この情報が参考になりました。 ありがとう。

1点。 start付けてAcrobatを呼び出すのを、forの中にするならば、 上記バッチは「for」で始まる1行だけで良くなります。

・・・印刷が終わった後のAcrobatを閉じる操作は残りますが。。。

CASPAR003

Caesarさま

ああ,これはですね.十分に早いパソコンだとそれでよいのですが,私の環境だと初回起動に時間がかかりすぎてタイムアウトしてしまうとかそんな理由だったかと記憶しています.環境に合わせて調整して頂ければ.

トラックバック
  • トラックバック
コメント投稿
コメントフォーム
項目名 入力欄

ブログ情報

カレンダー
2017年1月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
最近のエントリー
最近のコメント
コメントを頂いたエントリー
コメントをくださった方一覧
コピー用紙の裏表
でった☆
CASPAR003
あのー
CASPAR003
amumo
CASPAR003
mariko
kazu
お仕事で青ざめた話
iun
iun
CASPAR003
AcrobatでPDFの一括印刷
Caesar
CASPAR003
Shadeのレンダラー仕様メモ
iun
CASPAR003
ブログ同盟本 C87 3日目 東S-04b
CON$
CASPAR003
Ca3 Post_Effector 2.0
sisioumaru
CASPAR003
sisioumaru
CASPAR003
Shade15について雑感
iun
CASPAR003
iun
色について
iun
CASPAR003
Lv67
iun
CASPAR003
雪まつり行ってきたよ
iun
CASPAR003