2011-12-21 23 views
3

Windowsエクスプローラで複数のPDF文書を選択し、右クリックして印刷を選択すると、Adobe Acrobat Readerが最小化され、すべての文書が自動的にプリンタに送信されます。WindowsはどのようにPDF文書を一括印刷しますか?

Windowsと同じことをやりたがっていますが、どうしたのですか?

questionのように、PrintToの動詞にProcessStartInfoを使用しています。残念ながら、これは静かではありません。複数のドキュメントを印刷する場合、大きな問題があります。アプリケーション(通常はAdobe Reader)の印刷が完了したら、どうすればわかりますか?複数のprintToプロセスを連続して起動すると、前の印刷が完了する前に1つのドキュメントが開かれているように見えます。

私はFoxit Readerや他のユーザーと交換しているユーザーがいるため、Adobe Readerのハードコーディングを避けたいと考えています。

+0

私たちは同じ(そして関連する)問題を抱え、最終的に回避策として[gsprint](http://pages.cs.wisc.edu/~ghost/gsview/gsprint.htm)を使用しました。 – Silas

+0

私がやるべきことの最初のことは、 'regedit'(慎重にもちろん)で掘り下げて、あなたのマシンで起こっていることを正確に調べることです。 – AakashM

+0

オクラ@Silas、私はその結論に来ないことを望んでいた。 =/ – Skywise

答えて

4

他のPDFビューアでも、Adobe Readerのプラグアンドプレイの代替となるような方法で対応できるかどうかわかりません。おそらく、サポートしたいそれぞれのプログラムに合わせて調整する必要があります。 Readerをシステムにインストールするのはそれほど難しくありません。実際には、仕事をする必要があり、ほとんどのコンピュータにはプリインストールされています。

""C:\Program Files\Adobe\Reader 10.0\Reader\AcroRd32.exe"" /p /h "%1" 

注引数:

あなたが知っている必要が最初の事はあなたがいずれかのコードやエクスプローラのコンテキストメニューから、その動詞を経由して印刷することを教えたとき、あなたはこのような何かをやっているということです。/p(印刷するよう指示する)と/ h(最小化を開始する)。

別のオプションがあります。アドビ開発者向けFAQ(http://partners.adobe.com/public/developer/en/acrobat/sdk/pdf/intro_to_sdk/DeveloperFAQ.pdf)は、このコマンドラインが動作することを述べてファイル単位:

AcroRd32.exe /t path "printername" "drivername" "portname" 

文書は、[印刷]ダイアログボックスを抑制しながら、これは、Adobe Readerのを開始し、そのパスを完全に指定する必要がありますファイルを印刷していることを指定します。

「現在開いている場合でも、AcrobatまたはAdobe Readerの別のインスタンスを起動する」オプションがあります。 (開発者向けのFAQをもう一度読んでください。)これは複数の印刷ジョブを並行して実行するために使用できます。

私がまだ別のコマンドラインリファレンスを見つけました:だから、基本的に、あなたはPDFファイルのリストを反復処理し、それぞれに対してProcess.Start呼び出しで新しい印刷プロセスを開始し、それがクローズするのを待つことができAdobe Reader Command Line Reference

Process.WaitForExitを介して。これにより、プログラムがハングしているように見えますが、プログラムの実行中にハングアップすると嫌になるので、実際にはキャンセル可能なBackgroundWorkerで処理を進めてください。

+0

ありがとう、@ djdanlib。私は今、Acrobat Readerが存在すると仮定できることを確認したので、あなたの 'Acrobat Reader/t'ソリューションを使用することができます。印刷しますが、 '/ h 'を追加しても最小化されません。 – Skywise

関連する問題