同じフォルダ内にあるpdfファイルをどばっとまとめてファイル名順に印刷したい!BatでAdobeReaderDCで印刷する!


スポンサーリンク

確定申告の書類で、同じフォルダ内にあるpdfファイルをどばっとまとめてファイル名順に印刷したい!

ファイルをどばっと選択して、プリンターに送れば印刷はできる・・・、

でも、印刷するのが数枚なら良いけど、
100枚とかあると同時印刷の上限に引っかかっちゃうし、順不同だし。
ん~、
Batでいけないかな・・・・
助けてGoogle先生!
ありがとう!感謝!
ポイントはひとつ!
に書いてある
/tオプション

Adobe Reader を起動し、印刷ダイアログボックスを表示せずに PDF ファイルを印刷し、Adobe Reader を終了する

現状この/tオプションをつけてもAdobeReaderを終了されませんw

(初回起動時のみ、一枚でも開いていれば期待通りの動作)
私のPC内に入っているのは
Acrobat Reader DC
・・・なので、タスクマネージャからプロセス名を調べて
、参考サイトからスクリプトをお得意のコピペしてちょこっと改変しました

概要

・batファイルが起動したらAdobeReaderDCが立ち上がるので立ち上がったら何かキーを押す。
すると
順にファイルを印刷していきます、5秒のWaitを入れているのでPCがいきなりフリーズするほど重くはならないかと、
もし、マシンスペックが低い場合はこのtimeoutの数値を増やして良い塩梅にしてあげると吉かと。
参考サイト(コピペ元)の最下段「taskkill /im Acrobat.exe」は印刷実行中のadobeReaderまでまとめてTaskKillしてたので外しました。

 

ホントは1ファイル印刷が終わって、AdobeReaderが終了するのを確認してから次のファイル印刷へと進んだ方が良いよね!
うん!
良いはず!って感じでBatを書いてたんだ。
だけど、プロセス監視の処理が出てきて、
わりに合わないと感じ始めた途端、
めんどくなって来たのでtimeoutでウェイトを入れただけになりましたw
まぁ、たまに使えそうなので防備録として残しておきます。

以下副産物

①adobeReaderDCのPIDを取得して変数に格納するbat(複数プロセスがあるので、スペース区切りで格納してます)

 

②WaitPrgLoop.bat
プロセス名を引数で渡して、指定プロセスが終了するまで待つbat

 

bat中から
call WaitPrgLoop.bat AcroRd32.exe
って感じで渡してあげると吉、だけどAdobeReaderは/tオプションを付けても窓が一枚残るのでプロセス名で監視してもダメw
なので、初回時に起動しっぱなしになるAdobeReaderのPIDを①で取得して、
そのPIDを除外したAdobeReader(印刷処理をする方)を監視して、終了するまで待つ。
・・・で、次のファイルの処理って感じにすればお行儀の良さそうなbatファイルができそう。
7割くらい作った気がするけど、今回はリタイアですw
以下未完成のメモ(ちゃんと動きません)
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
for %%i in (*.pdf) do (
echo  印刷中 %%i
START ACRORD32.EXE /n /t “%%i”
call WaitPrgLoop.bat AcroRd32.exe
echo 次のファイル
pause
)
もう、必要なファイルをどばっと印刷しちゃったので続き作るとしても1年後だな。
今はbat作るよりも確定申告の入力が待ってるんだ。

スポンサーリンク

  1. コメントはまだありません。

  1. トラックバックはまだありません。