dポイントプレゼントキャンペーン実施中!

Windows XP上で、VB2005からページ指定してPDFファイルを印刷したいと思っています。

ProcessStartInfo.Verb = "Print"を使えば、PDFファイル全体を印刷させることが出来るのはわかっているのですが、ページ指定の方法が分かりません。

DOSプロンプトを使って、AdobeReader(Acrobat)の印刷ダイアログを表示させて印刷する方法があるのは知っているのですが、独自の印刷ダイアログから印刷をさせたいと思っています。

方法はどんなものでも良いので(できれば無料の)何か良い方法があればぜひ教えてください。

A 回答 (1件)

私の PC には Adobe Reader 7.0 をインストールしてあるのですが、


参照設定で Adobe Acrobat 7.0 Type Library を設定してやると
Dim aa As Acrobat.AcroApp
Dim av As Acrobat.AcroAVDoc
dim ap As Acrobat.AcroPDDoc
と言った宣言ができるようになりました。
おそらく、この辺りのオブジェクトを使用すればできるのだろうと思うのですが、私には使用方法がよくわかりませんでした。
http://www.adobe.com/devnet/acrobat/?tab:downloa …

http://www.est.co.jp/pdfl/
と言ったものを見れば、使用方法がわかるのではないかと推測しています。

この回答への補足

下記のようにして、ページを指定して印刷する方法を実現することが出来ました。

参考にさせて頂いたURLは http://homepage3.nifty.com/belie/vba/vba016.htm です。
参考URLのほぼそのままなのですが、コードを一応書いておきます。

-----------------------------------
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Const FName As String = "C:\sample.pdf"
Dim AVDoc As Acrobat.CAcroAVDoc
Dim PDDoc As Acrobat.CAcroPDDoc
Dim wkPage As Integer
' PDFファイルを開く
AVDoc = CreateObject("AcroExch.AVDoc")
R1 = AVDoc.Open(FName, "")
If Not CBool(R1) Then
MsgBox("Openに失敗したため処理を中止します。")
Exit Sub
End If
PDDoc = AVDoc.GetPDDoc()
' ページ数を取得する
wkPage = PDDoc.GetNumPages()
' 印刷する
R1 = AVDoc.PrintPagesSilent(0, wkPage - 1, 1, CLng(True), CLng(True))
If Not CBool(R1) Then
MsgBox("印刷に失敗しました。")
End If
' PDFファイルを閉じる
AVDoc.Close(CLng(False))
End Sub
End Class
-----------------------------------

補足日時:2007/06/20 16:51
    • good
    • 0
この回答へのお礼

tsukasa-12r様、回答ありがとうございます。

まだきちんと調べていないのですが、Adobe Acrobat 7.0 Type Library(私のマシンにはReader8.0が入っているのでAdobe Acrobat 8.0 Type Library)を使っていろいろ試してみたいと思います。

後ほど、どうなったか改めて報告させていただきます。

お礼日時:2007/06/19 09:38

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!