• ベストアンサー

VB2005からページ指定してPDFの印刷の方法

Windows XP上で、VB2005からページ指定してPDFファイルを印刷したいと思っています。 ProcessStartInfo.Verb = "Print"を使えば、PDFファイル全体を印刷させることが出来るのはわかっているのですが、ページ指定の方法が分かりません。 DOSプロンプトを使って、AdobeReader(Acrobat)の印刷ダイアログを表示させて印刷する方法があるのは知っているのですが、独自の印刷ダイアログから印刷をさせたいと思っています。 方法はどんなものでも良いので(できれば無料の)何か良い方法があればぜひ教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.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:downloads=1/http://www.est.co.jp/pdfl/ と言ったものを見れば、使用方法がわかるのではないかと推測しています。

sazusa
質問者

お礼

tsukasa-12r様、回答ありがとうございます。 まだきちんと調べていないのですが、Adobe Acrobat 7.0 Type Library(私のマシンにはReader8.0が入っているのでAdobe Acrobat 8.0 Type Library)を使っていろいろ試してみたいと思います。 後ほど、どうなったか改めて報告させていただきます。

sazusa
質問者

補足

下記のようにして、ページを指定して印刷する方法を実現することが出来ました。 参考にさせて頂いた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 -----------------------------------

関連するQ&A

  • PDFファイルを印刷し終了するには

    VB 2005で開発しています PDFファイルを印刷し印刷が終わったらAcrobatを終了させたいのですが、 方法が分かりません。 Dim proc As New Process proc.StartInfo.FileName = "z:\book1.pdf" proc.StartInfo.Verb = "Print" proc.StartInfo.CreateNoWindow = True proc.Start() この後、印刷が完了した後Acrobatのみ残ってしまいます。 印刷が終了した時点でAcrobatを終わらせる方法はないでしょうか。 ご教示お願いします。

  • VBAでPDFをページ指定して印刷したい

    お世話になります。 ---------- <実現したいこと> Excel VBAを用いて、PDFファイルを印刷したい。 PDFファイルは、ページ指定をしたい。原則として最初のページと任意指定のページの2ページを印刷する。 できれば、1枚の用紙に2ページを印刷したいが、こちらは優先順位は低い。 <努力したこと> VBA上で、コマンドラインを使ってPDFを単純に印刷するまでは出来た。 だが、ページ指定のオプションが見つからない。もしかして存在しないのだろうか? コマンドライン以外でも構わないので、実現できる方法があれば知りたい。 <条件> 会社のWindows PCを利用している。 Adobe Acrobat PRO DCがインストールされている。 外部のソフトをインストールすることは難しい。 ---------- その他、不明な点がありましたら追記します。 よろしくお願いいたします。

  • PDFでページを印刷したい。

    PDFファイルにページをつけて印刷したいのですが、可能でしょうか?Acrobatでページ番号を設定しても、印刷はされないようです。元のファイルにページをつけておいてから、PDFに変換するべきなのでしょうか?

  • ワークシート上のPDFファイルをVBAで印刷したい

    エクセル2010です。 Worksheets("Sheet2").OLEObjects(1).Verb Verb:=xlVerbOpen で、エクセルのワークシート上に埋め込んだPDFファイルを開くことはできました。 これで開いたPDFを手動ではなく自動でPrintし、Acrobatを終了させる方法があれば知りたいのです。 なお、残念ながら有料のAcrobatはありません。

  • PDFの印刷(多数ファイルの指定ページだけを一気に印刷)

    PDFのファイル(4ページ程)が2000以上あります。 その各ファイルの1ページ目だけを印刷したいのですが、 ファイル数が多いため、一つ一つ開けて印刷するのは面倒です。 何か一気に印刷できる方法はないでしょうか? Acrobat6.0を使用しています。

  • PDFファイルのページ指定印刷(複数ページ)

    1000ページほどのPDFファイルがあります。 そのうち、300ページほど印刷したいのですが、 印刷するページが1,7,10,21,35,50,83,105,178・・・と ランダムなのです。 このままでは印刷ボタンを押してページ指定して・・・ という作業を300回繰り返すことになるので、何かいい方法はありませんでしょうか? 印刷する指定ページはテキスト(1,7,10,21,35,50,83,105,178・・・)であります。当方で、PDFファイルを1ページずつ分割したり、TIFファイルに変換することも可能です。 宜しくお願いします。

  • いきなりPDF ページ指定印刷が出来ない

    いきなりPDF Ver.11 CpmpleteでPDFを表示した後 プリンタで印刷をしようとしましたが、普通に「全ページ」や「1-2」と言った ページ印刷は出来るのですが、「1,3」と言ったカンマ区切りで指定すると エラーになります。例が全角読点だったので「、」でも試しましたがダメでした ちなみにacrobat だとカンマ区切りで印刷できたのでいきなりPDFのバグか 仕様だと思うのですが 問い合わせページが見つからなかったのでここで質問させて頂きました。 よろしくお願いします。 ※OKWAVEより補足:「ソースネクスト株式会社の製品・サービス」についての質問です。

  • VBからPDFファイル自動生成するには

    VBから印刷イメージを自動にPDFファイルに変換し指定フォルダに保存するにはどのようにすればよいのでしょうか? いろいろ調べても良くわかりません。 できればサンプルプログラムもあれば幸いです。 現在は、通常使うプリンタにAcrobat PDFWriterを指定し手動でPDFファイルを作っている次第です。 環境としてはWindows2000、VB6.0、Acrobat4.05です。 どんな情報でも結構です。お待ちしております。

  • VB6上から印刷ダイアログを表示させずにPDFを作成したい

    VB6で印刷ダイアログを表示させずにその日の日付の付いたPDFファイルを作成しようとしています。 ファイル名は作成日をそのままつけるので、印刷ダイアログを表示させたくないのですが、方法がわかりません。何かよい方法はないでしょうか?

  • PDFで複数のページを選択して、いっぺんに印刷する方法

    アクロバットリーダーでPDFファイルを紙に印刷をしたいのですが、全てのページが必要ではなく、歯抜けに印刷したいのですが方法がわかりません。 例えば、全50ぺージのPDFファイルで4ぺージ目と10ページ目と13ページ目となどと選んでいっぺんに印刷する方法は、ありますか? どなたか御存知でしたらお教え下さい。

専門家に質問してみよう