AcroExch.PDTextSelect: GetBoundingRect メソッド

TOP > AcroExch.PDTextSelect > GetBoundingRect      [...]


説明

テキスト選択状態になっている四方位置情報(AcroRectオブジェクト:Top,Bottom,Left,Right)を得ます。

形式

LPDISPATCH GetBoundingRect();

引数

  1. 無し。

戻り値

  • AcroRectオブジェクトに位置情報が返される。

動作するバージョン

VersionAdobe
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
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ファイルの2ページ目から指定テキストを選択状態にする。そして抽出する。

  • F8キーでステップ実行しながら動作確認する。
  • 事前に参照設定をする。
001 Sub AcroExch_PDPage_GetBoundingRect() 002 003 Debug.Print "TEST_PDPage_GetBoundingRect:" & Now 004 Dim objAcroApp As New Acrobat.AcroApp 005 Dim objAcroHiliteList As New Acrobat.AcroHiliteList 006 Dim objAcroAVDoc As New Acrobat.AcroAVDoc 007 Dim objAcroPDPage As Acrobat.AcroPDPage 008 Dim objAcroPDTextSelect As Acrobat.AcroPDTextSelect 009 Dim objAcroAVPageView As Acrobat.AcroAVPageView 010 Dim objAcroRect As Acrobat.AcroRect 011 Dim lRet As Long 012 Dim lCnt As Long 013 Dim j As Long 014 Dim strText As String 015 016 'PDFドキュメントを開いて表示する。 017 lRet = objAcroAVDoc.Open("E:\Test01.pdf", "") 018 Set objAcroAVPageView = objAcroAVDoc.GetAVPageView() 019 '2ページ目に移動表示する。 020 lRet = objAcroAVPageView.Goto(1) 021 'ハイライトリストを作る。※「テキストのハイライト」では無い 022 '※10文字目から、50文字のハイライトリストを作る。 023 lRet = objAcroHiliteList.Add(10, 50) 024 025 '検索して見つかったページのAVPageViewオブジェクトを作成 026 Set objAcroAVPageView = objAcroAVDoc.GetAVPageView() 027 '検索して見つかったページのPDPageオブジェクトを作成 028 Set objAcroPDPage = objAcroAVPageView.GetPage() 029 '1文字単位で文字をHiliteListの範囲に従って 030 'PDTextSelectオブジェクトを作成する。 031 Set objAcroPDTextSelect = _ 032 objAcroPDPage.CreatePageHilite(objAcroHiliteList) 033 'AcroPDTextSelectオブジェクトに従って、 034 '該当PDFページを選択状態にする。 035 lRet = objAcroAVDoc.SetTextSelection(objAcroPDTextSelect) 036 037 '抽出した文字列の数(Index)を取得する 038 lCnt = objAcroPDTextSelect.GetNumText() - 1 039 strText = "" 040 For j = 0 To lCnt 041 '単語,又は隣接単位で抽出する 042 strText = strText & objAcroPDTextSelect.GetText(j) 043 Next j 044 Debug.Print strText 045 046 '選択状態になっている四方範囲(AcroRect)を取得する。 047 Set objAcroRect = objAcroPDTextSelect.GetBoundingRect 048 With objAcroRect 049 Debug.Print "Rect.Top=" & .Top 050 Debug.Print "Rect.bottom=" & .bottom 051 Debug.Print "Rect.Left=" & .Left 052 Debug.Print "Rect.Right=" & .Right 053 End With 054 055 Skip: 056 'PDFファイルを保存しないで閉じる 057 lRet = objAcroAVDoc.Close(1) 058 059 'Acrobatを閉じる 060 lRet = objAcroApp.Hide '(TEST用) 061 lRet = objAcroApp.Exit '(TEST用) 062 063 'オブジェクトを強制解放する 064 Set objAcroHiliteList = Nothing 065 Set objAcroRect = Nothing 066 Set objAcroPDPage = Nothing 067 Set objAcroPDTextSelect = Nothing 068 Set objAcroAVPageView = Nothing 069 Set objAcroAVDoc = Nothing 070 Set objAcroApp = Nothing 071 072 End Sub


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

 

実行結果

TEST_PDPage_GetBoundingRect:2008/08/02 9:28:24
Adobe Systems Incorporated. All rights reserved.
Adobe
Rect.Top=751
Rect.bottom=724
Rect.Left=36 ※左
Rect.Right=245 ※右

※下記は実行途中のPDFビュアーの画面の一部です。

透明テキストが選択状態になっています。

PDTextSelect:GetBoundingRect メソッド実行中画面

補足

動作確認環境

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

戻る

「AcroExch.PDTextSelect: GetBoundingRect メソッド」への3件のフィードバック

  1. はじめまして、いくおと申します。

    AcrobatをVBAで操作したいと考え、ここにたどり着きました。本当に解説があり、大変参考になってます。PDFにある表をコピペしたいと考えていますが、以下プロセスは可能でしょうか。

    コピーしたい表の範囲は、「比較表」と書かれてありその文字の背景色が赤色になっている部分がスタート。範囲の最後は、※○○と書かれています。

    比較表を検索してRect.top、Rect.Leftを取得、※○○を検索してRect.bottom、Rect.Rightというプロセスになるのではと思ってますが、「比較表」と書かれてある文字は表の最初の部分に書かれているとは限らず、背景色で判別する必要があると思っています。

    選択した範囲の背景色を取得するメソッドはあるのでしょうか。

  2. いくおさん。初めまして。

    >選択した範囲の背景色を取得するメソッドはあるのでしょうか。

    残念ですが、該当するメソッドは有りません。
    注釈オブジェクトは色の判定が出来ますが、上記とは無関係です。

    何かPDFに別のキーワードを人為的に追加するか、
    PDF化する前に何らかのキーワード化するか。※多分既存PDFでしょう

    再度、発想の転換をして、
    何らかの犠牲を元に考え直す事をお勧めします。

  3. 管理人様

    アドバイス頂き、ありがとうございます。そういうメソッドはないのですね。発想を転換することにします。

コメントを残す

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

CAPTCHA


★ 文章での質問は難しいですよネ。でも、早く解決して、家に帰りたい。


SAMURAI Plugin

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

  • OS名 バージョン
  • Acrobat バージョン
  • ツール(Excel等) バージョン
コメントにサンプルコードを入れる時はコードを全て全角文字列にしてください。コチラで半角に戻します。それでもエラーが回避できない時はコメント下さい。個別に対処します。



お仕事で当サイトを見ている方へ
考え込んだら、ご質問下さい。
一緒に解決策を考えましょう。

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