Acrobat/DDE: DocFind

説明

PDFファイルから文字列の検索結果を一覧表示します。

このコマンドは複数のPDFファイルの同時検索は出来ません。

※Adobe Readerでは当DDEを使用出来ません。

 

形式

[DocFind(char* fullPath,
    char* string,
    boolean caseSensitive,
    boolean wholeWords,
    boolean bReset)]

 

引数

注意:第3引数の印刷ドライバー名「driverName」は要らないくても印刷出来る!

fullPath
[char*]
検索するPDFファイルのフルパス
注意:パス中に空白があるときは注意する。
string
[boolean]
検索する文字列
caseSensitive
[boolean]
真(TRUE)の場合は大文字と小文字を区別して検索する。
偽(FALSE)の場合は区別しない
wholeWords
[boolean]
真(TRUE)の場合は単語単位で検索する。
偽(FALSE)の場合は単語単位で検索しない
bReset
[boolean]
真(TRUE)の場合は最初の頁から検索する。
偽(FALSE)の場合は現在の頁から検索する

 

戻り値

true false以外のとき。
false fullPathによって指定されたPDFドキュメントが開かれてない。
又は検索出来なかった。

注)ExcelのVBAではDDE命令の発信ステートメント上で、戻り値を取得出来ません。

 

 

サンプル:ExcelのVBA

PDFドキュメントから「Acrobat」の文字列を検索し、一覧で表示します。

  • Excel VBA開発環境をF8キーでステップ実行して動作確認する。

 

Sub DDE_DocFind()

Dim lChanNo As Long ‘DDEチャンネル番号
‘パスに空白が入った時用にダブル引用符を付加

Const CON_PDF_PATH = """E:¥test01.pdf"""

‘Acrobatアプリケーション起動。
Shell "C:¥Program Files¥Adobe¥Acrobat 8.0¥Acrobat¥Acrobat.exe"
‘DDEチャンネルのオープン
lChanNo = DDEInitiate("Acroview", "Control")

‘PDFファイルのオープン
DDEExecute lChanNo, "[DocOpen(" & CON_PDF_PATH & ")]"
‘最初の頁から検索します。
DDEExecute lChanNo, "[DocFind(" & _
CON_PDF_PATH &
",Acrobat,FALSE,FALSE,FALSE)]"
DDEExecute lChanNo, "[DocFind(" & _
CON_PDF_PATH &
",Acrobat,TRUE,TRUE,TRUE)]"

‘PDFを全て閉じ、Acrobatアプリケーション終了
DDEExecute lChanNo, "[AppExit()]" ‘これをしないとAcrobatプロセスが残る
‘DDEチャネルを閉る
DDETerminate lChanNo

End Sub

 

実行結果

DocFindの実行結果

※別画面に検索結果一覧が表示されました。

 

補足

  • Adobe Readerでは使用出来ません。
  • 第3引数、第4引数、第5引数は大文字のTRUE、FALSEを指定しないとメソッドの実行は失敗します。

 

動作確認環境

  • WindowsXP + SP3 + WindowsUpdate
  • Adobe Acrobat Pro 8.1.4 + Office Pro 2003

 

Adobe社の解説ページ : 英語

以下がAdobe社のAcrobat DDEの解説ページです。表示には時間がかかります。
http://livedocs.adobe.com/acrobat_sdk/9/Acrobat9_HTMLHelp/IAC_API_DDE_Messages.104.8.html

 

TOPへ

コメントを残す

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

CAPTCHA