AcroExch.PDDoc: CreateTextSelect メソッド

TOP > AcroExch.PDDoc > CreateTextSelect      [...]


説明

指定ページのAcroRectオブジェクトで指定された四角のテキスト範囲をPDTextSelectオブジェクトとして取得する。

この後は選択されたテキストをAVDoc.SetTextSelectionメソッドとAVDoc.ShowTextSelectメソッドを使って表示します。

形式

LPDISPATCH CreateTextSelect(long nPage, LPDISPATCH iAcroRect);

戻り値

  • テキスト選択が出来れば選択テキストを含んだPDTextSelectオブジェクトを返します。
  • 選択するテキストが1つもない時は、Nullを返します。

引数

  1. 第1引数(long nPage) :
    指定ページ。開始ページは0から。
  2. 第2引数(LPDISPATCH iAcroRect) :
    AcroRectオブジェクトで選択範囲をTop、bottom、RightLeftプロパティで事前に設定しておく必要がある。

動作するバージョン

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

説明:指定ページを範囲指定して、テキスト選択状態で画面に表示する。

  • F8キーでステップ実行しながら動作確認する。
  • 事前に参照設定をする。
001 Sub AcroExch_PDDoc_CreateTextSelect() 002 003 Dim objAcroApp As New Acrobat.AcroApp 004 Dim objAcroAVDoc As New Acrobat.AcroAVDoc 005 Dim objAcroPDDoc As Acrobat.AcroPDDoc 006 Dim objAcroPageView As Acrobat.AcroAVPageView 007 Dim objAcroRect As New Acrobat.AcroRect 008 Dim objPDTextSelect As Acrobat.AcroPDTextSelect 009 Dim lRet As Long '戻り値 010 Const lPageNumber As Long = 2 'ページ番号 011 012 'Acrobatアプリケーションを起動する 013 lRet = objAcroApp.Show 014 'PDFファイルを開いて表示する 015 lRet = objAcroAVDoc.Open("E:\Test01.pdf", "") 016 'PDDocオブジェクトを取得する 017 Set objAcroPDDoc = objAcroAVDoc.GetPDDoc() 018 'AVPageViewオブジェクトを取得する 019 Set objAcroPageView = objAcroAVDoc.GetAVPageView() 020 '指定ページ(4頁)に移動します。※0が開始頁 021 lRet = objAcroPageView.Goto(lPageNumber) 022 023 '選択を示す長方形を作成する。頁左下部を起点。 024 objAcroRect.Top = 400 '上 025 objAcroRect.bottom = 100 '下 026 objAcroRect.Right = 300 '右 027 objAcroRect.Left = 100 '左 028 029 '該当ページのobjAcroRectで指定された範囲の 030 'PDTextSelectオブジェクトを取得する 031 Set objPDTextSelect = _ 032 objAcroPDDoc.CreateTextSelect(lPageNumber, objAcroRect) 033 If objPDTextSelect Is Nothing Then 034 MsgBox "テキストが選択出来ませんでした", _ 035 vbOKOnly + vbCritical, "実行エラー" 036 GoTo Skip_Test02_SetTextSelection 037 End If 038 'テキストを選択状態にする 039 lRet = objAcroAVDoc.SetTextSelection(objPDTextSelect) 040 'テキスト選択状態を見やすい画面表示にする 041 lRet = objAcroAVDoc.ShowTextSelect() 042 043 Skip_Test02_SetTextSelection: 044 'PDFファイルを保存しないで閉じます 045 lRet = objAcroAVDoc.Close(1) 046 'Acrobatアプリケーションを終了する 047 lRet = objAcroApp.Hide 048 lRet = objAcroApp.Exit 049 050 'オブジェクトを強制開放する 051 Set objPDTextSelect = Nothing 052 Set objAcroPageView = Nothing 053 Set objAcroRect = Nothing 054 Set objAcroPDDoc = Nothing 055 Set objAcroAVDoc = Nothing 056 Set objAcroApp = Nothing 057 058 End Sub


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

実行結果

以下がTest01.pdfをF8キーでステップ実行した途中結果です。

「lRet = objAcroAVDoc.SetTextSelection(objPDTextSelect)」の実行後の状態です。

AcroPDDoc:CreateTextSelect メソッド実行結果

補足

動作確認環境

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

戻る

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

  1. はじまして。

    当サイトを参考にさせていただいて大変助かっております。
    ひとつ問題を抱えていまして解決策が見つからず恐縮ながらこの度質問をさせていただくこになりました。

    開発環境は以下となります。
    【OS:WIN10】
    【ツール:VS2008】
    【Acrobat9 Pro,X pro,XI pro※いずれも体験版です】

    開発目的はPDFファイルのテキスト内容を取得してテキストに吐き出すことを主旨にしております。
    当サイトを参考に開発環境においては無事にPDFの内容を取得およびテキストへ出力することに成功したのですが、いざ別の環境に成果物のexeとacrobat.dllを移行した際に実行エラーとなってしまっている状況です。
    移行先にはAcrobat Readerがバージョン違いでインストールされているのですが、問題の切り分けができないでいます。
    そもそも体験版による制限なのか、開発時で使用したDLLと同一のAcrobatバージョンがインストールされていないといけないのかなどなど。。
    Acrobatの体験版ではなく正規版を購入すれば問題が解決されるということであれば購入を検討します。

    もし何かしらお気づきの問題点などお分かりになられましたらご教授いただきたいのですが。

    何卒、よろしくお願いいたします。

  2. 匿名係長 さん
    はじめまして。

    >・・環境に成果物のexeとacrobat.dllを移行した際に実行エラー・・

    acrobat.dllだけの移行では確実にエラーになります。
    詳しいことは書けませんが、
    OLE操作のDLLはレジストリ経由で連動します。
    ならばレジストリ登録をすればイイかと思いますが、そこは簡単ではありません。
    通常はOLE関連は専用のインストーラが必要になります。しかしAcrobat開発の環境をインストールする為のインストーラは存在しませし、提供もされてません。
    つまり実行先に「Acrobatの正規版を購入&インストール」が解決方法になります。

    テキスト抽出ぐらいなら「同一のAcrobatバージョン」で無くても、事前の導入テストは必要かと思われますが、問題なく動作すると予想しています。(※Acrobat v8.0 以上ならばテキスト抽出はOK
    「体験版による制限」が存在するかは聞いたことは無いです。有るとしたら「試用期間」の30日だけだと思っています。

    いずれにしても、移行先に「Acrobat9 Pro,X pro,XI pro」以上のバージョンが存在すれば、問題なく動作すると思います。
    Readerの異なるバージョンが混在しても問題ないと思っています。実際にコチラではReader DC + Acrobat XI Pro (+ Win 10 Pro 64bit)の環境が動作確認のメインになっています。

    ご確認下さい。

  3. 早速の回答ありがとうございます。

    なるほど。そうなんですねぇ。。

    .NETのregasm.exeでどうにかならないか試してみようかと思っています。dllの登録ができず参照できない場合は、製品を購入しようか検討してみますね。

    貴重な回答ありがとうございました!!

コメントを残す

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

CAPTCHA


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


SAMURAI Plugin

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

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

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