
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: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
-----------------------------------
tsukasa-12r様、回答ありがとうございます。
まだきちんと調べていないのですが、Adobe Acrobat 7.0 Type Library(私のマシンにはReader8.0が入っているのでAdobe Acrobat 8.0 Type Library)を使っていろいろ試してみたいと思います。
後ほど、どうなったか改めて報告させていただきます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) コマンドプロンプトでフォルダ内(デスクトップ)の複数PDFファイルの1ページ目だけを印刷したい 1 2022/09/11 23:33
- Excel(エクセル) エクセルシートのPDFでの保存 2 2022/09/06 13:05
- プリンタ・スキャナー PDF印刷 一枚だけカラーにする方法 1 2023/02/07 09:30
- PDF PDF印刷後に「変更を保存しますか?」と訊かれる 2 2023/04/28 17:35
- PDF EXCEL ページを指定してPDF出力するVBAを教えてください。 2 2023/02/09 10:27
- PDF Acrobat Reader PDFで注釈をいれて印刷すると、縦と横が逆さまになって印刷されています 3 2023/01/30 07:31
- その他(パソコン・スマホ・電化製品) Webページ印刷時にヘッダー・フッターをつけたい 1 2022/04/25 21:35
- Excel(エクセル) Excelであるシートだけ印刷できない 1 2022/04/01 09:04
- Excel(エクセル) 【マクロ】webアドレスにて指定されたCSVファイル【excelソフト表示】を印刷する件 1 2023/02/15 01:52
- Excel(エクセル) エクセル2013「次のページ数に合わせて印刷」が小さすぎる 9 2023/03/28 10:18
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ACCESS VBA レポートプレビュー...
-
webの印刷で、デフォルトでA3を...
-
ヘッダやフッタの印刷をしたくない
-
VB2005からページ指定してPDFの...
-
Excel VBAで文字列の可視長を得...
-
excelにて各シートの総印刷ペー...
-
PDFファイルを開かずに印刷...
-
ページ内にスクロールバーのあ...
-
ページの一部が消える印刷プレ...
-
VBAで印刷ページ最終行にページ...
-
ページ内の画像印刷について
-
C# 印刷可能領域と余白範囲...
-
IEでのwebサイト印刷
-
outlook 文字を揃えたい。tab...
-
マイクロ(μ)の文字を半角で出...
-
教えてください。
-
MsgBoxについて
-
テーブル内の文字サイズを変更...
-
オプションメニューの中の文字...
-
ユーザーによって任意でフォン...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCEL VBA 印刷プレビューダイ...
-
PDFファイルを開かずに印刷...
-
Excel VBAで文字列の可視長を得...
-
ページ内にスクロールバーのあ...
-
EXCEL VBAでPDFファイルを開い...
-
ACCESS VBA レポートプレビュー...
-
ヘッダやフッタの印刷をしたくない
-
phpについてですかね、印刷ボタ...
-
excelにて各シートの総印刷ペー...
-
印刷時ヘッダーとフッターを挿入
-
コマンドプロンプトでフォルダ...
-
インラインフレームの印刷について
-
ページ内の画像印刷について
-
印刷プレビュー表示後ユーザー...
-
VBAで印刷ページ最終行にページ...
-
C# 印刷可能領域と余白範囲...
-
エクセルVBAで印刷する書式をク...
-
サイト全体を縮小して印刷する...
-
Excel VBA 「印刷中」メッセー...
-
横に長いWeb画面を一枚の用紙に...
おすすめ情報