« 「Web ページ、完全」をひとつのフォルダにまとめて管理する。 | トップページ | PDFファイルをページを指定して印刷する。(その2) »

2007年12月21日 (金)

PDFファイルをページを指定して印刷する。

Adobe ReaderのDDEには、そういう機能がないので、AcroPDF.dllを利用します。
しかし、そのまま、CreateObject("AcroPDF.PDF")しても、使えないので、IEに貼り付けて利用します。

printPages(印刷開始ページ, 印刷終了ページ)の要領で指定します。

Option Explicit
Dim File
Dim ie

File="PDFファイルのフルパス"
Set ie=CreateObject("InternetExplorer.Application")
ie.Visible=True
ie.Navigate File
Do While ie.Busy Or ie.ReadyState<>4
  WScript.Sleep 100
Loop
Call ie.Document.PrintPages(1,3)
Call ie.Document.PrintPages(5,5)

COMからの印刷は、非同期に行われます。
IEを先に終了すると印刷されないので、IEを残します。
また、COMから印刷すると、Adobe Readerが残ります。
はたまた、警告ダイアログも出ます。

このやり方で印刷終了を待ち合わせるのは無理です。諦めました。:-(
なので、お勧めしません。

« 「Web ページ、完全」をひとつのフォルダにまとめて管理する。 | トップページ | PDFファイルをページを指定して印刷する。(その2) »