TOP > AcroExch.AVDoc > PrintPages [...]
説明
PDFファイルを頁指定して印刷する。印刷はデフォルトのプリンターです。印刷ダイアログは表示されません。
形式
VARIANT_BOOL PrintPages(long FirstPage,
long LastPage,
long PSLevel,
long BinaryOk,
long ShrinkToFit);
引数
- 第1引数(long FirstPage) :
印刷を開始する頁番号。1頁目は0を指定する。 - 第2引数(long LastPage) :
印刷の終了頁。第1引数に注意。 - 第3引数(long PSLevel) :
ポストレベルを指定する。(2又は3) - 第4引数(long BinaryOk) :
数値ならバイナリーデータ、0は7-bit ASCIIデータ - 第5引数(long ShrinkToFit) :
用紙の印刷可能領域に収まる様に縮小印刷指定する。 注)第5引数部分は未テスト。
0(false)=縮小印刷する
0以外(true)=縮小しない
戻り値
- 戻り値が-1は成功。
- 戻り値が-1以外はPDFドキュメントがオープンされてないか、他で印刷中の場合。
動作するバージョン
Version | Adobe Acrobat |
備考
|
---|---|---|
4
|
-
| Acrobat 4.0 ※Windows 98SE + Excel 2000 |
5
|
-
| Acrobat 5.0.5 |
6
|
-
| Acrobat 6.0.3 Pro |
7
|
-
| Acrobat 7.0.9 Pro Acrobat 7.1.4 Pro |
8
|
OK
| Acrobat 8.1.2 Pro |
9
|
-
| Acrobat 9.3.2 Extended |
10
|
-
| Acrobat X (10.1.8) Extended |
11
|
-
| Acrobat XI (11.0.04) Extended |
- OK = 動作する。
- NO = 動作しない。 戻り値が0を返す。
- - = 未確認。
サンプル:ExcelのVBA
- F8キーでステップ実行しながら動作確認する。
- 事前に参照設定をする。
001 Private Sub CommandButton18_Click()
002
003 Dim objAcroApp As New Acrobat.AcroApp
004 Dim objAcroAVDoc As New Acrobat.AcroAVDoc
005 Dim lRet As Long
006
007 'Acrobatアプリケーションを起動する。
008 lRet = objAcroApp.Show
009 'PDFファイルを開いて表示する。
010 lRet = objAcroAVDoc.Open("E:\Test01.pdf", "")
011 'PDFファイルの頁を指定して印刷する。
012 lRet = objAcroAVDoc.PrintPages(1, 2, 2, 0, 0)
013
014 'PDFファイルを閉じます。
015 lRet = objAcroAVDoc.Close(1)
016
017 'Acrobatアプリケーションを終了する。
018 lRet = objAcroApp.Hide
019 lRet = objAcroApp.Exit
020
021 'オブジェクトを強制解放する
022 Set objAcroAVDoc = Nothing
023 Set objAcroApp = Nothing
024
025 End Sub
Highlight:プログラミング言語のソースコードを構文で色分け (GUI編)
補足
- 第5引数は0(false)の場合、用紙の印刷可能領域に収まるようにする為、(必要に応じて)ページが縮小印刷します。0以外(true) の場合は縮小印刷しません。デフォルトは0の縮小印刷です。なお、この第5引数に関しては未テスト状態ですが、一応記載します。
- 印刷先のデフォルトプリンタを変更する事が出来ます。
「デフォルトプリンタを一時的に変更する方法」 を参照して下さい。
参照
- 印刷の問題点を解決
- Adobe Reader で PDF ファイルを表示 / 印刷する方法
PDFを印刷したいだけなら、上記が楽です。プリンターの指定もできます。
動作確認環境
- WindowsXP Pro(+ SP3) +
Acrobat 8.1.2 Pro + Office 2003 + MicrosoftUpdate
< 戻る >
ブラウザ画面の文字サイズを変更するショートカットキー
Shortcut Keys
|
大変参考になりました、私でもお役に立てるかと思い、投稿いたします。
http://www.adobe.com/jp/support/products/pdfs/acrojs_j.pdf
上記リンクのPDF136ページに「bShrinkToFit」の説明が載っていました。
第5引数がこれなのは、AdobeSDKのacrobat.hにlong bShrinkToFitとして記述されています。
bShrinkToFit がtrue の場合、用紙の印刷可能領域に収まるようにするため、(必要に応じて)
ページが縮小されます。false の場合は縮小されません。デフォルトはfalse です。
まさか、こんな2002年のJavaScript解説PDFに記載されているとは、・・。(汗
確かにPDFの印刷にはその機能がありました。
それがコノ部分に相当する引数だった訳ですね。
この後に修正させて頂きます。
ありがとうございます。m(_ _;)m
サイト内を検索しましたが該当のメソッドについて記述がなかったので質問します。
今は
Call AcroAVDoc.PrintPages() を用いて印刷処理をしてます。
しかしこれだと詳細設定の「画像として印刷」が設定できないみたいです。
設定方法わかりますか?
masaさん。初めまして。
OLEには、詳細設定の「画像として印刷」に該当するメソッド又はプロパティは存在しません。
しかし、どの様にしたらその設定を出来るかは判ります。
レジストリです。
HKEY_CURRENT_USER¥Software¥Adobe¥Acrobat Reader¥9.0¥General¥cPrintAsImage
1) 9.0: 7.0 , 8.0 , 9.0などのソフトのバージョン番号です。
2) 使用するソフトにより[Acrobat Reader]部分は[Adobe Acrobat]に代わります。
3) デフォルトでは[¥General¥]も含めてキーは存在しません。つまり「画像として印刷」しないです。一度設定をするとこの部分のキー以下が生成されます。詳細設定をデフォルトにしてもこの部分は残ります。
4) [¥General¥cPrintAsImage]キーが存在しても、その下の名前[t0],[t1],・・・に値(文字列=プリンター名)無しなら「画像として印刷」しないです。「画像として印刷」したい時はこの名前t0にプリンター名をセットします。
5) 上記4)で名前[t0],[t1]と書きましたが、これはAcrobat Reader 9.0の場合です。Adobe Acrobat8.0では[s0],[s1]と変わります。名前の値もバイナリーになります。値はプリンター名です。値が無ければ「画像として印刷」しない。値があれば「画像として印刷」するです。
以上の様にシステムにインストールされているのがAcrobat ReaderなのかAdobe Acrobatによって変更箇所が変わります。またバージョンにより見るところも変わります。
注意点ですが、Acrobat ReaderもAdobe Acrobatも起動(Show)する時にレジストリを一気に読み込みます。そして終了(Exit)する時にレジストリを更新します。つまり、起動中はレジストリを見ません。この点を注意して下さい。
以前にも同じ質問を受けたのですが、サンプルを作るにも「汎用性」を考えると非常に難しいので作っていません。(今は暇が無い)
同じように解説しているサイトページがあります。英語サイトですが、見て損は無いです。
http://www.404techsupport.com/2008/09/09/make-adobe-reader-and-adobe-acrobat-use-print-as-image-setting-by-default-2/
参考になったでしょうか。
レジストリを操作しないとダメなんですね・・・。
英語サイトみてみます。
ありがとうございました。
初めまして、
OS:Windows11
バージョン:Adobe Acrobat X Pro
HKEY_CURRENT_USER¥Software¥Adobe¥Adobe Acrobat ¥10.0¥General¥cPrintAsImage
レジストリに
名前:t0 データ:Adobe PDF
設定していますが、
VBAだと「画像として印刷」がうまく機能しません。
手でファイル開いて印刷したら画像にはなるんですが、、、。
chen さんへ。
質問の趣旨がイマイチ不明ですが。コチラに似たような会話をしているサイトを見つけました。英語ですが、機械翻訳でも十分に理解できる内容だと思っています。ご参考にしてください。