LoginSignup
5
5

Windowsのコマンドラインで、PDFファイルをプリンタ印刷する

Last updated at Posted at 2020-07-03

手元にある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の印刷ダイアログで出てくるプリンタ名をそのまま記入しよう。

キャプチャ.PNG

たとえば

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で参照)

lpr.bat
@echo off
"PDFtoPrinter.exe"  %~dp0hoge.pdf  "Canon LBP312i"

おしまい

5
5
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5