手元にあるPDFファイルを、ダイアログを触らずに直接プリンタで印刷する方法のメモ。
検索してヒットする方法
AcroRd32.exe /t オプションを使う方法が紹介されているけれど、今のAcrobat Reader DCではうまくいかない・・・
PDFtoPrinter: Command-line PDF printing
そういったソフトを使えば上手くいった。
以下から PDFtoPrinter.exe をダウンロード。
ローカルプリンターも、LAN接続プリンタでもOK.
D:\> PDFtoPrinter.exe filename.pdf "Name of Printer"
Priner名は、Acrobat Readerの印刷ダイアログで出てくるプリンタ名をそのまま記入しよう。
たとえば
D:\ "PDFtoPrinter.exe" C:\home\data\output.pdf "\\\\Curios\TSC DA200"
Powershellで、プリンタ名一覧を取得するには
こんなコマンドがあるよ。「Name」の値を記入すればOK。
PS C:\> get-WmiObject -class Win32_printer
Location :
Name : TSC DA200
PrinterState : 0
PrinterStatus : 3
ShareName :
SystemName : LAYRA
Location :
Name : Canon LBP312i
PrinterState : 0
PrinterStatus : 3
ShareName :
SystemName : LAYRA
PS C:\>
PDFtoPrinterコマンドの注意点
印刷サイズ
印刷オプションは必ず「実際のサイズで印刷(等倍)」になります。
ページにフィットさせる必要がある場合などは、exeファイルと同じフォルダに「PDF-XChange Viewer Settings.dat」があると、それを設定オプションとして読み込んでからプリントする仕様であるため、設定ファイルをこさえる必要がある。
PDF-XChange Viewerは、ここからダウンロードできる。
引数ファイルの指定方法
指定するPDFの相対パスは、「PDFtoPrinter.exeのバイナリを置いたディレクトリ」が基準になります。別の場所にpdf を置いている場合、絶対パスで指定するのが無難。
たとえばバッチファイルにて、カレントディレクトリにある hoge.pdf を印刷したいなら以下となる。(%~dp0で参照)
@echo off
"PDFtoPrinter.exe" %~dp0hoge.pdf "Canon LBP312i"