AcroExch.PDPage: CreateWordHilite メソッド

TOP > AcroExch.PDPage > CreateWordHilite      [...]


説明

単語、又は隣接する文字列単位の情報とそのリストをHiliteListオブジェクト情報の範囲に従って、1ページのテキスト選択であるAcroPDTextSelectオブジェクトを作成する。

 

形式

LPDISPATCH CreateWordHilite(LPDISPATCH iAcroHiliteList);

 

引数

  1. 第1引数(LPDISPATCH iAcroHiliteList) :
    HiliteListオブジェクトは事前に範囲をAddメソッドで作成しておく。

 

戻り値

  • Null以外 : 成功
  • Null : 失敗

 

動作するバージョン

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

 

説明:文字列を検索し、見つかったページの最初の単語、又は隣接する文字列で6文字目から10個をテキスト選択状態で画面表示する。

  • F8キーでステップ実行しながら動作確認する。
  • 事前に参照設定をする。
  • テストする時は出来るだけテキストを沢山含んだページを対象にする。

 

Sub AcroExch_PDPage_CreateWordHilite()

    '検索文字列
    Const KensakuText       As String = "agreement"
    
    Dim objAcroApp           As New Acrobat.AcroApp
    Dim objAcroHiliteList     As New Acrobat.AcroHiliteList
    Dim objAcroAVDoc        As New Acrobat.AcroAVDoc
    Dim objAcroPDPage       As Acrobat.AcroPDPage
    Dim objAcroPDTextSelect As Acrobat.AcroPDTextSelect
    Dim objAcroAVPageView   As Acrobat.AcroAVPageView
    Dim objAcroRect           As Acrobat.AcroRect
    Dim lRet                      As Long
    Dim lCnt                     As Long
    Dim j                         As Long
    Dim strText                As String
    
    'Acrobatを起動表示する
    lRet = objAcroApp.Show  '(注1)
    'PDFドキュメントを開いて表示する。
    lRet = objAcroAVDoc.Open("E:¥Test01.pdf", "")
    'PDFドキュメントの先頭ページから文字列検索する。
    ' 第2引数:大文字小文字の区別無し
    ' 第3引数:単語単位の検索無し
    ' 第4引数:最初のページから検索する
    lRet = objAcroAVDoc.FindText _
            (KensakuText, False, False, True)
    If lRet = False Then
        '検索出来なかった
        Debug.Print "Not Found =(" & KensakuText & ")"
        GoTo Skip:
    End If
    'ハイライトリストを作る。※「テキストのハイライト」では無い
    lRet = objAcroHiliteList.Add(5, 10)
    
    '検索して見つかったページのAVPageViewオブジェクトを作成
    Set objAcroAVPageView = objAcroAVDoc.GetAVPageView()
    '検索して見つかったページのPDPageオブジェクトを作成
    Set objAcroPDPage = objAcroAVPageView.GetPage()

    '1文字単位で文字をHiliteListの範囲に従って
    'PDTextSelectオブジェクトを作成する。
    'Set objAcroPDTextSelect = _
        objAcroPDPage.CreatePageHilite (objAcroHiliteList)
    '単語、又は隣接する文字列単位でHiliteListの範囲に従って
    'PDTextSelectオブジェクトを作成する。
    Set objAcroPDTextSelect = _
        objAcroPDPage.CreateWordHilite(objAcroHiliteList)
    
    'AcroPDTextSelectオブジェクトに従って、
    '該当PDFページを選択状態にする。
    lRet = objAcroAVDoc.SetTextSelection(objAcroPDTextSelect)
    '抽出した文字列の数(Index)を取得する
    lCnt = objAcroPDTextSelect.GetNumText() - 1
    strText = ""
    For j = 0 To lCnt
        Debug.Print objAcroPDTextSelect.GetText(j)
        '単語単位で抽出する
        strText = strText & objAcroPDTextSelect.GetText(j)
    Next j
    Debug.Print ""
    Debug.Print strText
    Debug.Print ""
    '選択状態になっている四方範囲(AcroRect)を取得する。
    Set objAcroRect = objAcroPDTextSelect.GetBoundingRect
    With objAcroRect
        Debug.Print "Rect.Top=" & .Top
        Debug.Print "Rect.bottom=" & .bottom     
        Debug.Print "Rect.Left=" & .Left
        Debug.Print "Rect.Right=" & .Right
    End With
    Debug.Print ""

Skip:
    'PDFファイルを保存しないで閉じる
    lRet = objAcroAVDoc.Close(1)

    'Acrobatを閉じる
    lRet = objAcroApp.Hide      '(注1)
    lRet = objAcroApp.Exit      '(注1)

    'オブジェクトを強制解放する
    Set objAcroHiliteList = Nothing
    Set objAcroPDPage = Nothing
    Set objAcroPDTextSelect = Nothing
    Set objAcroAVPageView = Nothing
    Set objAcroRect = Nothing
    Set objAcroAVDoc = Nothing

End Sub

 

実行結果

※以下はイミディエイト画面の内容

All
rights
reserved.
Adobe
R
Acrobat
R
SDK
8.0
Developing
All rights reserved.
AdobeR AcrobatR SDK 8.0 Developing
Rect.Top=751
Rect.bottom=724
Rect.Left=36
Rect.Right=245

 

サンプルの内容、及び結果の解説

  • AcroRect情報はそこを選択すると画面の様になる。
  • 以下は実行中のテキスト選択中の画面。
    テキスト選択状態2
  • CreatePageHilite メソッドをコメントにしてあるが、コメントを外して実行結果を比べてみると理解しやすい。

 

補足

  • F8キーでステップ実行し、各メソッドによりどのような動きをするかよく観察すること。
  • (注1)はテスト用のロジック。

 

動作確認環境

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

 

戻る

コメントを残す

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

CAPTCHA


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


SAMURAI Plugin

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

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.