TOP > AcroExch.PDDoc > CreateTextSelect [...]
説明
指定ページのAcroRectオブジェクトで指定された四角のテキスト範囲をPDTextSelectオブジェクトとして取得する。
この後は選択されたテキストをAVDoc.SetTextSelectionメソッドとAVDoc.ShowTextSelectメソッドを使って表示します。
形式
LPDISPATCH CreateTextSelect(long nPage, LPDISPATCH iAcroRect);
戻り値
- テキスト選択が出来れば選択テキストを含んだPDTextSelectオブジェクトを返します。
- 選択するテキストが1つもない時は、Nullを返します。
引数
- 第1引数(long nPage) :
指定ページ。開始ページは0から。 - 第2引数(LPDISPATCH iAcroRect) :
AcroRectオブジェクトで選択範囲をTop、bottom、RightLeftプロパティで事前に設定しておく必要がある。
動作するバージョン
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
説明:指定ページを範囲指定して、テキスト選択状態で画面に表示する。
- 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)」の実行後の状態です。
補足
- 「AcroExch.Rect:Right プロパティ」も参考にして下さい。
動作確認環境
- WindowsXP Pro(+ SP3) +
Acrobat 8.1.2 Pro + Office 2003 + MicrosoftUpdate
< 戻る >
はじまして。
当サイトを参考にさせていただいて大変助かっております。
ひとつ問題を抱えていまして解決策が見つからず恐縮ながらこの度質問をさせていただくこになりました。
開発環境は以下となります。
【OS:WIN10】
【ツール:VS2008】
【Acrobat9 Pro,X pro,XI pro※いずれも体験版です】
開発目的はPDFファイルのテキスト内容を取得してテキストに吐き出すことを主旨にしております。
当サイトを参考に開発環境においては無事にPDFの内容を取得およびテキストへ出力することに成功したのですが、いざ別の環境に成果物のexeとacrobat.dllを移行した際に実行エラーとなってしまっている状況です。
移行先にはAcrobat Readerがバージョン違いでインストールされているのですが、問題の切り分けができないでいます。
そもそも体験版による制限なのか、開発時で使用したDLLと同一のAcrobatバージョンがインストールされていないといけないのかなどなど。。
Acrobatの体験版ではなく正規版を購入すれば問題が解決されるということであれば購入を検討します。
もし何かしらお気づきの問題点などお分かりになられましたらご教授いただきたいのですが。
何卒、よろしくお願いいたします。
匿名係長 さん
はじめまして。
>・・環境に成果物の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)の環境が動作確認のメインになっています。
ご確認下さい。
早速の回答ありがとうございます。
なるほど。そうなんですねぇ。。
.NETのregasm.exeでどうにかならないか試してみようかと思っています。dllの登録ができず参照できない場合は、製品を購入しようか検討してみますね。
貴重な回答ありがとうございました!!
匿名係長 さんへ
頑張ってください。