1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

バッチファイルでPDFをAcrobat Reader DCで印刷させるときのプリンター名はExcelのActivePrinterと異なっている

Posted at

前提

Windows
Acrobat Reader DC 32 bit
プリンターはサーバー上にあるネットワークプリンター

コマンドライン

この場合、印刷のコマンドラインは、

"%programfiles(x86)%\Adobe\Acrobat Reader DC\Reader\AcroRd32.exe" /h /t "\\Server\name\folder\hoge.PDF" "XXXX Printer"

という形になる。もちろん、オプションはこれ以外もある。

Adobe Reader 8.1の起動オプション(その2)2007年7月 1日 (日)

オプション 意味 備考
/n New Instance 新規プロセス
/s Suppress Splash Window 起動ウィンドウ抑止
/o ? 不明
/h Hide Window 最小化ウィンドウ(印刷設定画面非表示)
/t PrintTo 指定プリンタへ印刷 (6.0:プリンタ必須;7.0:プリンタ省略可)
/p Print デフォルトプリンタへ印刷
/l Cool 非表示 7.0で追加
/u Url Protocol 不明 acrobat:で使われる? 7.0で追加
/a引数 Arguments オープンパラメタ(page=nなど) 7.0で追加
/eo ? 不明 CreateObjectで/o /eo /lが使われる。 7.0で追加
/b Browser ? IE表示で/o /eo /l /b /w hwmdが使われる。8.1で追加
/w hwnd Window handle IEのhwndを10進数で指定

使用例、コマンドラインでPDFファイルを印刷する。

START ACRORD32.EXE /p ファイル... 印刷設定画面表示
START ACRORD32.EXE /p /h ファイル... 印刷設定画面非表示
START ACRORD32.EXE /n /t "ファイル" 印刷設定画面非表示 (7.0~)
START ACRORD32.EXE /n /t "ファイル" "プリンタ名" 印刷設定画面非表示


>いずれの場合も印刷後、アプリが残るので、別途終了(CTRL+Q)が必要です。

>/n /tは、印刷後にほかになければ開いたまま残ります。
>8.0以前では、/nがなくても、新規に起こして、印刷後にほかにあれば消えました。
>8.1では、/tオプションのデフォルト動作が/nから変更されたようです。
>/pの複数ファイル指定が、8.1では可能です。以前は駄目だったような。


となっている。
[コマンドラインでPDFファイルを印刷する。(その2) 2007/07/03](http://scripting.cocolog-nifty.com/blog/2007/07/pdf_7cfb.html)
>Adobe Reader 6.0 ~ 8.1 用

DCでは未確認だが、8.1まではVBSでもできた。


しかし現在はバージョン名や言語はフォルダ名にはない。
また、Startではなくてもexeに指定する形で動く。
現在のDCも8.1と挙動は同じだと思われる。

# 使いみち
なお、この形ではAcrobat Readerが終了しないので、連続して使えるというものではない。
しかし、該当するフォルダのhoge.PDFを開いている場合、その開いているファイルの印刷指示を出すことができる。
このため、例えば、カラープリンターと白黒プリンターが別な場合、いちいち印刷設定窓を開かず、2つ指示を出すことができる。
また同じプリンターを設定を変えて登録している場合には、設定を変えて印刷することが可能と思われる。
あまり早くはないが、多数のPDFファイルを確実にファイルを印刷するような場合、右クリックで印刷するよりはいい。
右クリックは最大で10ファイル程度をまとめて印刷できるが、これより多いと、途中で印刷されないものが出てくる。

# Pritnter名の取得
## Micrsofot Office(ex.Excel)
ところで、サーバー上にあるプリンターをExcelのVBAで出すと
 \\server\testPrinterName on 9999:
とon のあとにポート番号が付く。
実際にExcelの印刷のマクロは、このポート番号をつけた状態で指定することで、プリンターが切り替わる。
ところが、Acrobat Reader DCのコマンドラインの時はこれをそのまま使うとエラーになる。
それではbat用のネットワークプリンターの名前はどうするかというと、ポート番号を削ってもいいが、一応VBSで
出力する。
[VBScript を使用してプリンタ名の一覧を取得する SQLの窓](https://winofsql.jp/lightbox/vbscript-printer-list-20190220-951.html)
PrinterListを出すVBSを使うと、
testPrinterName (server 上)
という表示になる。
こちらで指定すると印刷ができる。
On 以下は必要な時と不要な時があるということになる。
1
2
0

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
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?