AcroExch.PDDoc: Open メソッド

TOP > AcroExch.PDDoc > Open      [...]


説明

1つのPDFドキュメントをサイレント(画面に表示しない)で開く。

 

形式

VARIANT_BOOL Open(BSTR szFullPath);

 

引数

  1. 第1引数(BSTR szFullPath) :
    開くPDFファイルのフルパス。

 

戻り値

  • -1 : 成功。
  • 0 : 失敗。

 

動作するバージョン

Version Adobe
Acrobat
備考
4
-
Acrobat 4.0    ※Windows 98SE + Excel 2000
5
-

Acrobat 5.0.5 + Excel 2003
6
-

Acrobat 6.0.6 Pro + Excel 2003
7
-
Acrobat 7.1.4 Pro + Excel 2003
8
OK
Acrobat 8.1.2 Pro + Excel 2003
9
-
Acrobat 9.5.2 Extended + Excel 2003
10
OK
Acrobat X(10.1.4) Extended + Excel 2003
11
-
Acrobat XI (11.0.04) Extended
  • OK : 動作する。
  • NO : 動作しない。 戻り値が0を返す。
  • - : 未確認。

  






サンプル:ExcelのVBA

 

説明:サイレントでPDFドキュメントの最初のページを削除する。保存はしない。

  • F8キーでステップ実行しながら動作確認する。
  • 事前に参照設定をする。

 

Sub AcroExch_PDDoc_Open()

    Dim objAcroPDDoc    As New Acrobat.AcroPDDoc
    Dim lRet            As Long
     
    'PDFファイルを開いて表示する
    lRet = objAcroPDDoc.Open("E:\TestPDF.pdf")
    If lRet = False Then
        MsgBox "AcroExch_PDDoc_Open エラー"
        GoTo AcroExch_PDDoc_Open_Sklip
    End If
    '最初のページのみ削除する
    lRet = objAcroPDDoc.DeletePages(0, 0)
    
AcroExch_PDDoc_Open_Sklip:
    'PDFファイルを変更を反映せずに閉じる ※エラーは出ない
    lRet = objAcroPDDoc.Close
    'オブジェクトを強制開放する
    Set objAcroPDDoc = Nothing

End Sub

  

補足

  1. OpenするPDFファイルはローカルのハードディスク上に存在する必要があります。
  2. OpenするPDFファイルにURLパスを指定すると、エラーコード(0) が返されます。
  3. PDFファイルに「文書を開くときにパスワードが必要 / 文書を開くパスワード」設定がされている時は、戻り値に False (0) が返されます。 ※テスト結果
    つまり、PDFを開くときのパスワードが設定されているかの判断は当メソッドで出来ます。
    パスワードによるセキュリティ 設定 文書を開くときにパスワードが必要
    ・Acrobat 8 + Windows 7 環境下でテストした結果です。
    ・PDFを開くときにパスワード設定がされているかを判断する特定のメソッド等はOLE(IAC)には見当たりません。

 

動作確認環境

  • WindowsXP Pro(+ SP3) +
    Acrobat 8.1.2 Pro + Office 2003 + MicrosoftUpdate
  • WindowsXP Pro(+ SP3) +
    Acrobat X(10.1.4) Extended + Office 2003 + WindowsUpdate

 

戻る

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

  1. 管理人様

    複数のtiffファイルを一つのpdfファイルにするアクロバットプロで行う作業をエクセルのVBAから行いたいと考えています。
    そもそもpdf以外のファイルを開くメソッドはなんなのでしょうか? Openではエラーになるようです。
    当方、VBAはそこそこ使えますがアクロバットを扱うのは初めてです。 ざっと本HPを眺めさせて頂きましたが分からず質問させていただきました。
    その他、本目的にあったヒントを頂ければ幸いです。
     使用環境
    ・Win7 ないし Win8
    ・Excel2010
    ・Acrobat X Pro

  2. ぽん太 さん
    はじめまして。

    サンプルを作ってみました。
    Page_1.tiff の後に Page_2.tiff を追加してPDFファイルで出力します。
    詳細は各メソッドのHPページを御覧ください。

    参考になれば幸いです。

  3. 管理様

    早速の回答、ありがとうございます。
    サンプルコード、動作することを確認いたしました。
    コードはまだまったく理解出来ておりませんが、目的の機能をはたすものを作れるような気がしてきました。
    とても独力ではできなかったと思われ感謝いたします。
    またお世話になるかもしれませんがよろしくお願いいたします。

  4. 管理人様

    複数のtiffファイルを一つのpdfファイルする方法を御教示頂いた ぽん太です。
    おかげさまで目的を達することが出来、改めて感謝いたします。
     Acrobat関係は丸パクリなので後先になりますが各メソッドの勉強を始めています。 そこで教えて頂きたいことがありましたので、よろしくお願いいたします。

    ファイル結合時の「しおり」について
    通常、ハンドで結合処理をすると、OPTの「しおりを追加する」をオフにしない限り各ファイル名のしおりが設定されると思います。
     今回提示頂いたコードで結合生成されたものには、その各ファイル名のしおりがありません。
     InsertPages メソッドの解説には 第5引数(bBookmarks):しおりも追加する時はTrue(-1)。追加しない時はFalse(0)。とありますが、結合前ファイルをpdfにして試したところ、設定済みのしおりのみを引き継ぐようでした。
     また、PDBookmark メソッド一覧には 「しおり」の新規追加機能は有りませんともあり、CPDFは私にはハードルが高すぎるように思えます。
    結合前ファイルがpdf以外の場合(しおり無しのpdfも含み)、ファイル名をしおりとして設定する簡便な方法はあるのでしょうか?

    なお、元々の目的からはしおり設定は必要ありません。単に勉強として知りたいだけですので、時間の都合がついた時でも回答頂けたら幸甚です。

  5. ぽん太 さんへ。
    遅くなりました。

    「しおり」に関してはCPDF以外の手は無いです。
    後は別の有償ツールになると思っています。
    面倒ですが、CPDFをお使いください。

  6. 管理人様

    CPDFで対応とのことですので、現状ではしおり作成のニーズはありませんが、今後状況を見てチャレンジしようと思います。
    回答ありがとうございました。

  7. パスワード付きのPDFファイルを開く事は出来ないのでしょうか?

    os:Windows7 professional
    acroabat:X standard
    excel:2016

  8. 管理人さん

    有難う御座います。
    フリーソフトとかを使用せずにexcel vba と acrobat oleだけで完結出来たらと…………残念です。

    VBAでShellで開いたPDFに対してacrobat oleを使用して操作する事は可能でしょうか?
    例えば、ページの削除とか

  9. hide さんへ

    >VBAでShellで開いたPDFに対して・・
    「Shell」の部分でどの様なコマンドを実行するのかは不明ですが。

    Acrobat OLEでのページ削除(DeletePages)、挿入(InsertPages)等は可能です。
    ただ、Shell?で起動してAcrobatで画面表示されているPDFに対してはAcrobat OLEを使うのは無理だと思います。理由はShellで開いたAcrobat上のPDFはOLEの制御対象外だからです。
    当ページの命令(メソッド)を使って開いたPDFでしか、Acrobat OLEは制御出来ません。の、はずです。

    問題無い範囲で処理内容を教えて頂ければ、全体を通して、もっと的確な情報を分かる範囲でご提案出来るかもしれません。

  10. 管理人さん

    レスが遅くなり申し訳ありません。

    質問をし直させて頂きます。

    やりたい事は
    1、PW付きの複数のPDFファイルのPWを解除して保存
    (PWは同一のものが設定されています)
    2、保存したPDFファイル内で特定の文字列を含むページ以降
    を削除後にPWを付けて別名を付けて保存
    です。

    フリーソフトを使用しないと言う制限があります。
    OS等々については変わりありません。

    os:Windows7 professional
    acroabat:X standard
    excel:2016

  11. hide さんへ

    最大に問題点は
    「Acrobat環境にプログラミング操作でのパスワード処理が無い」
    事です。
    正確にはココのサイトにはそれに関する情報が無い、事。
    再度、見直しましたがやはり解決策には至りませんでした。
    その部分は別のソフト「フリーソフト」等に頼るしか無いと思っています。

    Excel VBA+Windows APIでAcrobatのパスワード入力画面にパスワードを飛ばすことは可能かもしれませんが、実用面ではかなり不安定なのでオススメできません。

    パスワード部分は別途で有償ツールを導入するしか手はないかもしれません。

    最適な情報の提供が出来なく、残念です。

  12. 管理人

    有難う御座います。
    フリーソフトを使用しないでのPW解除は難しいのですね

    2、保存したPDFファイル内で特定の文字列を含むページ以降
    を削除後にPWを付けて別名を付けて保存

    については如何でしょうか?

  13. hide さんへ

    「ページ単位での文字列検索」は以下を御覧ください。
    AcroExch.PDTextSelect メソッド一覧
    チョット分かりにくい内容ですが、サンプルは画面表示しながら動作します。それで確認ができます。
    なお、処理の関係上、デスクトップ画面にPDFが表示されてしまいます。
    これでは処理時間が非常に掛かります。
    テストが完了したら、
    lRet = objAcroApp.Show '(TEST用)
    となってる部分を
    lRet = objAcroApp.Hide
    にして下さい。
    タスクトレイ上にはアイコンが出ますが、処理速度は上がります。

    「ページの削除」は DeletePages を使います。
    サンプルで使い方が分かるはずです。

    ご検証下さい。

コメントを残す

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

CAPTCHA


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


SAMURAI Plugin

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

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