AcroExch.AVDoc: Open メソッド

TOP > AcroExch.AVDoc > Open      [...]


説明

PDFドキュメント(オブジェクト)、又はAcrobatがサポートしている画像ファイル(jpeg,png等)を開きます。

Acrobatアプリケーションが起動されていれば指定したファイルは画面表示されます。(<-注意事項有り)

Acrobatアプリケーションが起動されて無い時はインスタンス(オブジェクト)のみ作成します。

形式

VARIANT_BOOL Open(BSTR szFullPath,
                                BSTR szTempTitle);

戻り値

  • 戻り値が-1の時は成功。
  • 戻り値が0の時は失敗。

引数

  1. 第一引数(BSTR szFullPath) :
    PDFファイルのフルパス。
    Acrobatがサポートしている画像ファイル(jpeg,png等)のフルパス。
  2. 第二引数(BSTR szTempTitle) :
    開く時のタイトル。指定無し””でも構わない。

動作するバージョン

VersionAdobe
Acrobat
備考
4-Acrobat 4.0    ※Windows 98SE + Excel 2000
5
-
Acrobat 5.0.5
6
OK
Acrobat 6.0.3 Pro
7-Acrobat 7.0.9 Pro
Acrobat 7.1.4 Pro
8OKAcrobat 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

説明:PDFファイルを画面表示せず、インスタンスのみ作成して閉じる。

  • F8キーでステップ実行しながら動作確認する。
  • 事前に参照設定をする。
001 Sub AcroExch_AVDoc_Open() 002 Dim objAcroAVDoc As New Acrobat.AcroAVDoc 003 Dim lRet As Long 004 005 'PDFファイルを開く。 006 On Error Resume Next 007 lRet = objAcroAVDoc.Open("E:\Test01.pdf", "") 008 If lRet = False Then 009 'Acrobatがエラーメッセージを表示する 010 MsgBox "AVDOC.Open Error " & lRet 011 'PDFファイルを保存せずに全て閉じます。 012 lRet = objAcroAVDoc.Close(1) 013 GoTo Skip_CommandButton01_Click 014 End If 015 016 'ここで各種PDFの処理を行う。 017 018 'PDFファイルを保存して閉じます。 019 lRet = objAcroAVDoc.Close(0) 020 021 Skip_CommandButton01_Click: 022 023 'PDFオブジェクトを強制解放する 024 Set objAcroAVDoc = Nothing 025 End Sub


 Highlight:プログラミング言語のソースコードを構文で色分け (GUI編)
 

補足

  • OpenしたPDFドキュメント、又はAcrobatがサポートしている画像ファイル(jpeg,png等)は必ずCloseAllDocsメソッドかCloseメソッドで閉じる必要がある。その処理をしないとAcrobatアプリケーションを再起動した時に、そのファイルが指定をしないのに再表示される。
    注)何らかに形でインスタンス情報がメモリ上に残る為です。
  • Openしたファイルを画面表示せずに処理することが可能です。これがこのOpenメソッドの最大の特徴です。
  • PDFファイルに開くときのパスワードが設定されていると、このOpenメソッドで一時的に停止して画面上にパスワード入力を要求するダイアログ画面が表示されてしまいます。
    PDFを開く時にパスワードが設定されている時に表示されるダイアログ

    これを回避するには以下のメソッドを事前に実行してください。
    AcroExch.PDDoc:Open メソッド
    上記メソッドでFalse(0)が返ってきた時は「PDFを開くときのパスワード付き」ファイルと判断できます。

注意 ①

  • 存在しないFファイルを指定すると処理を中断し、Acrobatアプリケーションから以下のエラーメッセージ・ダイアログが表示されます。
    ※「この文書を開くときにエラーが発生しました。このファイルが見つかりません。」
    「この文書を開くときにエラーが発生しました。このファイルが見つかりません。」
  • 事前にPDFファイル、又はAcrobatがサポートしている画像ファイル(jpeg,png等)をチェックするロジックを当Openメソッドの前に入れる方が最良の方法だと思います。
    下記のサンプルはExcelファイルの拡張子をPDFにしたものです。Dir関数で先にエラーになります。
001 Private Sub CommandButton01A_Click() 002 Dim objAcroApp As New Acrobat.AcroApp 003 Dim objAcroAVDoc As New Acrobat.AcroAVDoc 004 Dim lRet As Long 005 Const CON_FILENAME As String = "E:\Test01_excel.pdf" 006 007 'PDFファイルの属性チェック 008 If Dir(CON_FILENAME, vbNormal) = "" Then 009 MsgBox CON_FILENAME & _ 010 " ファイルは存在しないか、PDFではありません。", _ 011 vbOKOnly + vbExclamation, "エラー" 012 GoTo Skip_CommandButton01_Click 013 End If 014 015 'Acrobatアプリケーションを起動する。 016 lRet = objAcroApp.Show 017 'PDFファイルを開いて表示する。 018 lRet = objAcroAVDoc.Open(CON_FILENAME, "") 019 If objAcroAVDoc.IsValid = 0 Then 020 MsgBox CON_FILENAME & _ 021 " ファイルはPDFではありません。", _ 022 vbOKOnly + vbExclamation, "エラー" 023 GoTo Skip_CommandButton01_Click 024 End If 025 026 'PDFファイルを全て閉じます。 027 lRet = objAcroApp.CloseAllDocs 028 029 'Acrobatアプリケーションを終了する。 030 lRet = objAcroApp.Hide 031 lRet = objAcroApp.Exit 032 033 Skip_CommandButton01_Click: 034 035 'PDFオブジェクトを強制解放する 036 Set objAcroAVDoc = Nothing 037 Set objAcroApp = Nothing 038 End Sub


 Highlight:プログラミング言語のソースコードを構文で色分け (GUI編)
 

備考

注意 ②

★2009/01/07 追加

  • Acrobat v8.1.3、v9.0の場合、オブジェクトは生成され、戻り値もTrue(-1)だが、ファイルが画面表示されない現象が発生しています。
    原因不明です。
    Windows環境やExcelバージョンを変えても結果は同じ。なぜPDFドキュメント、又はAcrobatがサポートしている画像ファイル(jpeg,png等)が画面に表示されないかは、分からないです。
    Acrobat v7.0ではPDFがAcrobat上に画面表示される。

動作確認環境

  • WindowsXP Pro(+ SP3) +
    Acrobat 6.0.3 Pro + Office 2003 + MicrosoftUpdate
  • WindowsXP Pro(+ SP3) +
    Acrobat 8.1.2 Pro + Office 2003 + MicrosoftUpdate

戻る


キーボード

ブラウザ画面の文字サイズを変更するショートカットキー

  1. [ CTRL ] + [ + ]  :  文字を大きく

  2. [ CTRL ] + [ - ]  :  文字を小さく
Shortcut Keys

  1. [ CTRL ] + [ + ]  :  Up the font size

  2. [ CTRL ] + [ - ]  :  Down the font size

「AcroExch.AVDoc: Open メソッド」への4件のフィードバック

  1. 管理人様
    初めて送信します。

    いろいろなサイトを見てきました。
    VB.NETでAVDoc.Openを上記のように実行していますが、
    パスワードつきPDFの場合、Open()メソッドで停止してしまいます。
    パスワードつきPDFの場合、エラーとできればよいのですが
    Open前にパスワードつきかどうか判断する方法を
    教えていただけないでしょうか?

  2. きんじ さん。
    初めまして。

    > パスワードつきPDFの場合、・・・

    ここで言っているパスワードとは「文書を開くときのパスワード」の事ですね。

    > ・・・Open()メソッドで停止してしまいます。

    停止と言うよりはパスワード入力を要求されるダイアログが表示されるので一時停止する、と思っています。

    > Open前にパスワードつきかどうか判断する方法を・・・

    当サイトで記載している情報ではPDFを開く時にパスワード付きPDFかの判断が出来る特定の命令は見当たりません。
    しかし、以下の命令を使うとOpen時にエラーが帰る事がテストで確認できました。
    AcroExch.PDDoc:Open メソッド

    ・Adobe Acrobat 8 Professional
    ・Windows 7 64Bit
    上記環境でテストした結果です。

    少しでも解決につながれば幸いです。

  3. 管理人様

    回答ありがとうございます。

    PDDoc:Openメソッドによって回答通り、パスワードつきPDFをエラーとして対応できることが分かりました。

    確認環境は下記の通りです。
    ・Adobe Acobat XI Professional
    ・Windows 7 32bit

    解決できて、助かりました。本当にありがとうございました。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


出来るだけ早く返答する様には心がけています。
が、遅くなる時もありますのでご了承ください。


SAMURAI Plugin

コメントをする時は出来れば以下もお願いします。

  • OS名 バージョン
  • Acrobat バージョン
  • ツール(Excel等) バージョン
コメントにサンプルコードを入れるとエラーになる場合が有ります。その時はコードの前後に <code> ・・・</code> タグを入れてください。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください